While initializing this final variable make sure that you are initializing only in one of the following constructs, otherwise compiler throw an error.
Initializer expression
public class FinalVariable {
// in the instance initializer expression, or while declaration itself
// final = ;
final int finalInstanceField = 5;
}
Instance initializer block
public class FinalVariable {
final int finalInstanceField;
{
// Initialization in instance initializer block
finalInstanceField = 5;
}
Constructor block
public class FinalVariable {
final int finalInstanceField ;
public FinalVariable() {
// constructor
finalInstanceField = 7;
}
}
Static final variables can be initialized in two ways.
1.Initializer expression
public class FinalVariable {
// in the instance initializer expression, or while declaration itself
// final <type> <variable_name> = <initializer expression>;
static final int finalStaticField = 25;
}
Static initializer block
public class FinalVariable {
static final int finalStaticField;
static {
finalStaticField = 7;
}
}