Initialize final variable before constructor in Java

后端 未结 9 1725
旧时难觅i
旧时难觅i 2020-12-03 09:00

Is there a solution to use a final variable in a Java constructor? The problem is that if I initialize a final field like:

private final String name = \"a na         


        
9条回答
  •  天命终不由人
    2020-12-03 09:30

    Another possiblity is to initialize the field in an instance initializer blocK:

    public class Foo {
            final String bar;
    
            {
                    System.out.println("initializing bar");
                    bar = "created at " + System.currentTimeMillis();
            }
    
            public Foo() {
                    System.out.println("in constructor. bar=" + bar);
    
            }
    
            public static void main(String[] args) {
                    new Foo();
            }
    }
    

提交回复
热议问题