为什么我的实时结果不是主要更新?

问题描述 投票:0回答:1

我正在制作货币跟踪器来跟踪比特币的实时价值。

如果我在自己的main方法中运行它,那么“bitcoinlive”类正确运行,但是当我创建一个文件实例时,它将不起作用。我需要它来打印比特币的实时价值。

我尝试打印变量“a53”,但我不知道我是否做得对。以下是bitcoinlive类的导入列表,因为它一直给我一个错误消息,并且在发布时不允许这个代码分开。

public static void main(String[] args) {
    Dates d = new Dates();
    String s = d.getDate();
    System.out.println("Date is" + s);
    W3 mywallet = new W3();
    Bitcoinlive mybitcoinlive = new Bitcoinlive();
    L3 myledger = new L3();
    Scanner myscanner = new Scanner(System.in);
    double buy = 0.0;
    int choice = 0;
    double bitcoin = 4000;
    double USD = 20000;

    while (choice != 5) {
        System.out.println("Welcome! Enter a command. \n"
                + "Enter 1) Buy Bitcoin \n"
                + "Enter 2) Sell Bitcoin  \n"
                + "Enter 3) Print Balance \n"
                + "Enter 4) Print History \n"
                + "ENTER 5) Exit Program\n");
        choice = myscanner.nextInt();

        if (choice == 1) {
            System.out.println("How many? ");
            buy = myscanner.nextDouble();
            mywallet.add(buy);
            bitcoin = bitcoin * buy;
            USD = USD - bitcoin;

            myledger.save(s);

            System.out.println("you have bought:" + mywallet.numcoins);
            System.out.println(USD);
            System.out.println(mybitcoinlive.a53);
            bitcoin = 4000;

        } else if (choice == 2 && USD >= bitcoin) {
            System.out.println("How many?");

            buy = myscanner.nextDouble();
            mywallet.subtract(buy);
            System.out.println("you have sold:" + mywallet.numcoins);
            USD = USD + bitcoin;
            System.out.println(USD);
            bitcoin = 4000;
            myledger.save(s);

        } else if (choice == 3) {
            System.out.println("Balance:" + mywallet.numcoins);

        } else if (choice == 4) {
            System.out.println("Transaction history:  ");

            System.out.println("you have made" + myledger.getsize() + "transactions"
                    + d.getDate());

        } else if (choice == 5) {
            // exit
            break;

        } else if (choice == 7) {
            System.out.println(mybitcoinlive.price);
        }

    }

    System.out.println("Bye");

}

这是我的单独课程

public class Bitcoinlive {



    Double a53=0.0;
    double price;     

    Double get() {

        try {
            String urlcoincapeth13 = "https://api.coinmarketcap.com/v1/ticker/bitcoin/";
            Document docblocktradescoincapeth13 = Jsoup.parse(new URL(urlcoincapeth13).openStream(), "UTF-8", "", Parser.xmlParser());
            String a13 = docblocktradescoincapeth13.toString();
            int a23 = a13.indexOf("price_usd") + 13;
            int a33 = a13.indexOf("price_btc") - 4;
            String a43 = a13.substring(a23, a33);
            a53 = Double.parseDouble(a43);
        } catch (Exception e) {
            System.out.println("Error accessing bitcoin values");
        }

        return a53;
    }
}
java currency bitcoin tracker
1个回答
1
投票

您的班级Bitcoinlive将价格存储在名为a53的字段中。您可以通过调用get()来更新此字段。然而,看起来你永远不会打电话给get() - 你只是在调用这个领域:

System.out.println(mybitcoinlive.a53);

尝试用以下代码替换该行:

System.out.println(mybitcoinlive.get());

或者先刷新它:

mybitcoinlive.get();
System.out.println(mybitcoinlive.a53);
© www.soinside.com 2019 - 2024. All rights reserved.