簡體   English   中英

Java變量無法解析或不是字段

[英]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坐標數組中) sitesToBeFiltereddisplayFilteredOutput JTextArea,但由於某種原因,我' m得到這個“無法解決,或者不是字段”的變量編譯錯誤。

任何人都可以向我解釋為什么會這樣嗎? 我懷疑我沒有正確引用與過濾器值匹配的元素的X坐標,但我不確定我應該怎么做...有人能指出我正確的方向嗎?

編寫代碼就好像positionsToBeFilteredsitesToBeFiltered.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM