Late final variables Unlike normal final fields, you do not have to initialize the field in its declaration or in the constructor initialization list . You can assign to it later at runtime. But you can only assign to it once, and that fact is checked at runtime.