我有一個ArrayDeque,ArrayDeque<Double> monthlyFibs
,我初始化了Queue<Double> monthlyFibs = new ArrayDeque<Double>();
。爲什麼使用ArrayDeque/Queue java獲取未定義類型?
然而,當我去打電話給我的功能,public ArrayDeque<Double> monthlyPivotBy3Fibonacci(String[][] contents, DecimalFormat df, double fib_constant, ArrayDeque<Double> monthlyFibs)
,在主,像
dp.monthlyPivotBy3Fibonacci(contents, df, 1.00616, monthlyFibs);
我得到一個錯誤,指出消息:
The method monthlyPivotBy3Fibonacci(String[][], DecimalFormat, double,
ArrayDeque<Double>) in the type DataProcess is not applicable for the arguments
(String[][], DecimalFormat, double, Queue<Double>) DataProcess.java line 530
Java Problem
我認爲問題在於,因爲monthlyFibs
與申報Queue<Double>
,但是當我通過monthlyFibs
作爲Queue<Double>
時,我無法使用功能push()
。我收到錯誤消息:
The method push(double) is undefined for the type Queue<Double>
這是怎麼回事?我使用eclipse(Java),它建議我在主要調用變量時將該變量作爲Queue<double>
。這是做到這一點的唯一方法嗎?
好吧,我將這樣做。那麼有什麼理由通過'Queue'聲明呢?我在飛行中學習Java,這就是其他網站寫了多少個。 –
@NickPredey,建議在類型聲明中使用接口,否則你只能將自己侷限於一個特定的實現。就你而言,這個建議仍然有效,你只是使用了錯誤的界面:你應該使用'Deque',但你使用'Queue'。自從接口'Deque'繼承'Queue'後,你可能會感到困惑。 –
就是這樣。關於如何正確使用java中的不同數據結構,我還沒有讀足夠的內容。 –