为什么最终的字段变量不能分配给空白的Java? [英] Why final field variable can not assign to blank in Java?

查看:138
本文介绍了为什么最终的字段变量不能分配给空白的Java?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与其他变量一样,我想将final字段类型变量分配给空白,但是初始化被Java阻止。它的逻辑是什么?也许我想使用我的变量的默认值?对于int = 0,string = null boolean = false等...

  public class Hello { 

static final int myNumber; / *它提供空白的最终字段myNumber
可能没有被初始化错误在Eclipse * /
}


解决方案

最终变量只能通过初始化器或赋值语句进行初始化一次。它不需要在声明点被初始化:这被称为空白最终变量。



更改代码

  public class Hello {

final int myNumber;
public Hello(int num){
this.myNumber = num;
}

}

静态最终变量使用静态块初始化

  static {
myNumber = 0;
}


Like other variables, i want to assign final field type variable to blank but initialization is blocking by Java. What is the its logic? Maybe i want to use default values of my variables? for int = 0, string = null boolean = false etc...

public class Hello {

static final int myNumber; /* it is giving "The blank final field myNumber 
                                may not have been initialized" error in Eclipse */
}

解决方案

A final variable can only be initialized once, either via an initializer or an assignment statement. It does not need to be initialized at the point of declaration: this is called a "blank final" variable.

change your code

public class Hello {

final int myNumber; 
 public Hello(int num){
 this.myNumber = num;
}

}

for static final variable use static block for initialization

static{
        myNumber = 0;
    }

这篇关于为什么最终的字段变量不能分配给空白的Java?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆