[英]Java variable cannot be resolved or is not a field
我在我的一個Java類中的變量上遇到“無法解析或不是字段”錯誤,我不明白為什么......我在網上看過,但找不到任何東西這真的解釋了為什么我得到它。 錯誤發生在以下for
循環中:
int i;
getFilterConditions();
for(i = 0; i < sitesToBeFiltered.size(); i++){
if(sitesToBeFiltered.get(i) == filter1Value){
Gui.displayFilteredOutput.append("\n");
Gui.displayFilteredOutput.append("EID: [" + sitesToBeFiltered.get(i) + ", " + applicationsToBeFiltered.get(i) + ", " + IDsToBeFiltered.get(i) + "]. ");
Vector3Double filteredEntityPosition =
Gui.displayFilteredOutput.append("Location in DIS coordinates: [" + sitesToBeFiltered.get(i).positionsToBeFilteredX.get(i));
}
}
它是在for
循環結束時的positionsToBeFilteredX.get(i)
變量上生成的。 我已經使用以下行將變量定義為類頂部的全局變量:
public static ArrayList<Double> positionsToBeFilteredX = new ArrayList<Double>();
要解釋我在這里要做的事情:
我有一個程序正在讀取通過網絡發送/接收的PDU,並且存儲PDU本身以及每個PDU在多個ArrayLists中保存的信息。 我試圖用這個代碼做的是獲取用戶在表單上輸入的值(存儲在filter1Value
整數變量中),並檢查該值是否等於特定ArrayList中的任何元素( sitesToBeFiltered
)。
所以,我循環遍歷sitesToBeFiltered
ArrayList,並檢查每個元素以查看它是否完全等於filter1Value
的值。 如果是,我接着將一些關於匹配的ArrayList元素的文本附加到JTextArea( displayFilteredOutput
)。
我想要添加到JTextArea的一件事是匹配元素的X位置(當發現元素與用戶的搜索條件匹配時,它被添加到positionsToBeFilteredX
。
所以我要對最后一行代碼做的是將sitesToBeFiltered
ArrayList中匹配元素的X坐標(存儲在X坐標數組中) sitesToBeFiltered
到displayFilteredOutput
JTextArea,但由於某種原因,我' m得到這個“無法解決,或者不是字段”的變量編譯錯誤。
任何人都可以向我解釋為什么會這樣嗎? 我懷疑我沒有正確引用與過濾器值匹配的元素的X坐標,但我不確定我應該怎么做...有人能指出我正確的方向嗎?
編寫代碼就好像positionsToBeFiltered
是sitesToBeFiltered.get(i)
返回的對象中的一個字段。 顯然不是。
應該早點看到它:問題是因為我試圖將值賦給一個不兼容類型的變量。 為了解決這個問題,我只需要將值附加到Gui中的JTextArea
而不首先將其賦值給變量:即代替寫入
Vector3Double filteredEntityPosition = Gui.displayFilteredOutput.append("Location in DIS coordinates: [" + positionsToBeFiltered.get(i);
我只需要寫:
Gui.displayFilteredOutput.append("Location in DIS coordinates: [" + positionToBeFiltered.get(i) + "]. ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.