Reputation: 3172
I'm getting a "Cannot be resolved or is not a field" error on a variable in one of my Java classes, and I don't understand why... I've had a look online, but can't find anything that really explains why I'm getting it. The error is happening in the following for
loop:
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));
}
}
It's being generated on the positionsToBeFilteredX.get(i)
variable at the end of the for
loop. I have defined that variable as a global variable at the top of the class using the line:
public static ArrayList<Double> positionsToBeFilteredX = new ArrayList<Double>();
To explain what I'm trying to do here:
I have a program that is reading the PDUs that are being sent/ received over a network, and storing both the PDUs themselves, and information held by each of the PDUs in a number of ArrayLists. What I'm trying to do with this code, is to take a value entered by the user on a form (stored in the filter1Value
integer variable), and check whether that value is equal to any of the elements in a particular ArrayList (sitesToBeFiltered
).
So, I am looping through the sitesToBeFiltered
ArrayList, and checking every element to see whether it is exactly equal to the value of filter1Value
. If it is, I am then appending some text about the matching ArrayList element to a JTextArea (displayFilteredOutput
).
One of the things I want to add to the JTextArea is the X position of the matching element (which was added to the positionsToBeFilteredX
when it was found that that the element matched the user's search criteria.
So what I'm trying to do with the last line of code is to append the X coordinate (stored in an array of X coordinates) of the matching element in the sitesToBeFiltered
ArrayList, to the displayFilteredOutput
JTextArea, but for some reason, I'm getting this "cannot be resolved, or is not a field" compile error on the variable.
Can anyone explain to me why this is? I suspect that I am not referencing the X coordinate of the element matching the filter value correctly, but I'm not sure how I should be doing this... Could someone point me in the right direction?
Upvotes: 1
Views: 4575
Reputation: 3172
Should have seen it sooner: the issue was because I was trying to assign the value to a variable that was of an incompatible type. To solve this, I just needed to append the value to the JTextArea
in the Gui without assigning it to a variable first: i.e. instead of writing
Vector3Double filteredEntityPosition = Gui.displayFilteredOutput.append("Location in DIS coordinates: [" + positionsToBeFiltered.get(i);
I just needed to write:
Gui.displayFilteredOutput.append("Location in DIS coordinates: [" + positionToBeFiltered.get(i) + "]. ");
Upvotes: 1
Reputation: 13123
Your code is written as though positionsToBeFiltered
is a field in the object returned by sitesToBeFiltered.get(i)
. Evidently it isn't.
Upvotes: 2