[英]How to use ArrayList to call a method from another class in Java?
[英]How to call on something from another class in Java and use it's Array?
我正在制作一個計算器,並具有稱為加法,減法,乘法和除法的類,以及另一個名為Calculation的類,需要它們全部從Calculation中獲取數據,然后將其更改為Operator的代碼示例:
public static void addition(){
calculation(); //imports calculation
for(int counter=0; counter < list.size(); counter++){
answer += list.get(counter);
}
System.out.println("The sum of these numbers is " + answer);
}
我簡化了Calculation類,因此更容易理解:
public static void calculation(){
List<Double> list = new ArrayList<Double>();
do{
list.add(scan.nextDouble());
}while(true)
此后,我希望能夠在我的Addition類中使用List,但是我一直在列表上看到“無法解析列表”的錯誤,並且它希望我創建一個局部變量。 我希望它從Calculation中獲取列表,然后允許我更改其結果。
如何允許它在我的Addition類中使用“列表”?
好的,所以我認為您對Java方法的工作原理有基本的誤解。 當您調用calculation()
,您將執行該方法中的代碼 ,然后返回addition()
的同一點。
現在, list
在calculation()
聲明,因此list
的范圍在該方法內部。 不能在該方法之外使用。 一旦calculation()
完成,它將銷毀list
。 如果要在calculation()
完成后訪問list
,則應return
它。
return list;
然后,您可以按以下addition
方法訪問它:
List<Double> list = calculation();
編輯
我注意到在您的calculation()
方法中,您有一個無限循環:
do{
list.add(scan.nextDouble());
}while(true)
這將繼續期望用戶提供新的兩倍。 這是不理想的,因為用戶不會想要將無限個double
值系列加在一起。 主要是因為那是不可能的。 那樣的解析只會引起問題。 我建議將輸入解析為String
,檢查值是否對應於double
,然后使用Double.parseDouble()
方法對其進行解析。
額外閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.