Eclipse warning about synthetic accessor for private static nested classes in Java?

后端 未结 6 1234
死守一世寂寞
死守一世寂寞 2020-12-03 02:17

My coworker suggested making several of the Eclipse code-formatting and warning settings to be more rigorous. The majority of these changes make sense, but I get this one we

6条回答
  •  孤街浪徒
    2020-12-03 02:50

    To help folks out, here is what you get if you use the original class code in the question with

    javac -XD-printflat WeirdInnerClassJavaWarning.java -d tmp
    

    Raw output, compiler added the comments. Note the addition of the synthetic package private class and constructor.

    public class WeirdInnerClassJavaWarning {
        {
        }
    
        public WeirdInnerClassJavaWarning() {
            super();
        }
        {
        }
        private final WeirdInnerClassJavaWarning$InnerClass anInstance;
        {
            this.anInstance = new WeirdInnerClassJavaWarning$InnerClass(null);
            this.anInstance.doSomething();
        }
    }
    
    class WeirdInnerClassJavaWarning$InnerClass {
    
        /*synthetic*/ WeirdInnerClassJavaWarning$InnerClass(WeirdInnerClassJavaWarning$1 x0) {
            this();
        }
    
        private WeirdInnerClassJavaWarning$InnerClass() {
            super();
        }
    
        public void doSomething() {
        }
    }
    
    /*synthetic*/ class WeirdInnerClassJavaWarning$1 {
    }
    

提交回复
热议问题