如何创建只能设置一次但在Java中不是最终变量的变量?
初始化最终变量后,您将无法进一步修改其值。即,您只能将值分配给最终变量一次。如果尝试将值分配给最终变量,则会生成编译时错误。
示例
public class FinalExample {
final int j = 100;
public static void main(String args[]){
FinalExample obj = new FinalExample();
obj.j = 500;
System.out.println(obj.j);
}
}编译时错误
FinalExample.java:6: error: cannot assign a value to final variable j
obj.j = 500;
^
1 error实现“最终”功能
在不实际使用final关键字的情况下实现最终功能-
使用setter方法将变量设置为私有并为其设置值,这样,如果您尝试第二次调用它,则应设置先前的值或引发异常。
示例
public class FinalExample {
private Integer num;
public void setNum(int num){
this.num = this.num == null ? num : this.num;
}
private String data;
public void setData(String data) {
this.data = this.data == null ? data : demo();
}
public String demo() {
String msg = "You cannot set value to the variable data for the second time";
throw new RuntimeException(msg);
}
public static void main(String args[]){
FinalExample obj = new FinalExample();
obj.setNum(200);
System.out.println(obj.num);
obj.setNum(500);
System.out.println(obj.num);
obj.setData("hello");
obj.setData("sample data");
}
}输出结果
200 200 Exception in thread "main" java.lang.RuntimeException: You cannot set value to the variable data for the second time at SEPTEMBER.remaining.FinalExample.demo(FinalExample.java:15) at SEPTEMBER.remaining.FinalExample.setData(FinalExample.java:12) at SEPTEMBER.remaining.FinalExample.main(FinalExample.java:26)
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话