0

I want to have inner classes inside of a main class. One attribute is innerClassId and I can't change it in the inner class. Code:

public class OuterClass {
    public static String innerClassId = "";
    
    public class InnerClass {
        innerClassId = "";
    }
}

It keeps saying "Syntax error, insert "ClassBody" to complete ClassDeclarationJava(1610612976)"

0

1 Answer 1

1

Here's a few variations of initialization:

public class OuterClass {
    
    public static String innerClassId = "one";
    
    public class InnerClass {
        
        {
            innerClassId = "two";
        }
        
        public InnerClass() {
            innerClassId = "three";
        }
        
        public InnerClass(int j) {
            //we'll ignore j here (but initializer code runs)
        }
        
        public InnerClass(String s) {
            innerClassId = s;
        }
    }
    
    public static void main (String[] args) {
        OuterClass oc = new OuterClass();
        System.out.println(OuterClass.innerClassId);
        InnerClass ic = new OuterClass().new InnerClass(0);
        System.out.println(OuterClass.innerClassId);
        ic = new OuterClass().new InnerClass();
        System.out.println(OuterClass.innerClassId);
        ic = new OuterClass().new InnerClass("four");
        System.out.println(OuterClass.innerClassId);
        
    }

}

Prints

one
two
three
four
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.