16.9. Definite Assignment, Constructors, and Instance Initializers

Let C be a class declared within the scope of V. Then:

V is definitely assigned before an instance variable initializer (§8.3.2.2) of C iff V is definitely assigned before the declaration of C.

Note that there are no rules that would allow us to conclude that V is definitely unassigned before an instance variable initializer. We can informally conclude that V is not definitely unassigned before any instance variable initializer of C, but there is no need for such a rule to be stated explicitly.

Let C be a class, and let V be a blank final non-static member field of C, declared in C. Then:

V is definitely unassigned (and moreover is not definitely assigned) before the leftmost ...

Get The Java® Language Specification, Java SE 7 Edition, Fourth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.