Search code examples
javaclassarraylistindexingelement

can't access the element in the ArrayList in java


for(int i = 0; i < req.dependsRequirement.size(); i++) {
    if(req.dependsRequirement.get(i).hasDesplayed == false)

I have created an ArrayList.

I want to access the element in index i, but when I use get(i) the compiler gives me a syntax error.

To understand the program I have created a class Requirement that has 3 attributes (name, hasDisplayed, and ArrayList of Requirement)


Solution

  • You need to provide a minimal reproducible example of your code. Only with it someone can detect the exact reason of your issue.

    But I can suppose that the problem connected with a type of object that you are trying to parse and take hasDesplayed parameter from it.

    So here I just assume what code structure you have based on your question details and provide a valid code for it. You should use a Collection type.

    public class Test {
    
        public static void main(String[] args) {
    
            Requirement requirement1 = new Requirement();
            requirement1.setName("Req1");
            requirement1.setHasDisplayed(true);
            Requirement requirement2 = new Requirement();
            requirement2.setName("Req2");
            requirement2.setHasDisplayed(false);
            Requirement requirement3 = new Requirement();
            requirement3.setName("Req3");
            requirement3.setHasDisplayed(true);
    
            ArrayList<Requirement> requirementList = new ArrayList<>(); // You need to parse this object
    
            requirementList.add(requirement1);
            requirementList.add(requirement2);
            requirementList.add(requirement3);
    
            Requirement requirementSummary = new Requirement(); // But I suppose you parse some kind of this object
            requirementSummary.setRequirement(requirementList);
    
            for (int i = 0; i < requirementList.size(); i++) {
                if (requirementList.get(i).hasDisplayed == false) {
                    System.out.println(requirementList.get(i).getName());
                }
    
            }
        }
    
        static class Requirement {
            String name;
            Boolean hasDisplayed;
            ArrayList<Requirement> requirement;
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public Boolean getHasDisplayed() {
                return hasDisplayed;
            }
    
            public void setHasDisplayed(Boolean hasDisplayed) {
                this.hasDisplayed = hasDisplayed;
            }
    
            public ArrayList getRequirement() {
                return requirement;
            }
    
            public void setRequirement(ArrayList requirement) {
                this.requirement = requirement;
            }
    
            @Override
            public String toString() {
                return "RequirementDetails{" +
                        "name='" + name + '\'' +
                        ", hasDisplayed=" + hasDisplayed +
                        ", requirement=" + requirement +
                        '}';
            }
        }
    }