比如
public class Test {
private static final String ttt = aaa();
public static String aaa() throws Exception {
return "aaa";
}
}
调用aaa可能抛出异常,在赋值语句中怎么处理?
------解决思路----------------------
你这种是不能用final的,final是常量。。。
要么你直接在用到ttt的地方嗲用aaa方法,要么把ttt的final去掉。
------解决思路----------------------
你让编译器保证它不被更改,你也一样可以通过某个 getAAA() 方法来保证不被更改嘛,一个单例或纯粹一个普通的 getAAA() 静态方法。总之编译器保证的东西在运行时也不见是不可突破的,比如一个单例的对象我们可以通过序列化再读取的办法复制得到另一个实例,你说这算是什么事呢?这个时候就出现这种设计一致性的问题。只是设计合理,保证程序的一致性要求,其它是不用太在意怎么做到的。
------解决思路----------------------
class Test1 {
private static final String ttt=bbb();
public static String bbb(){
try {
return aaa();
} catch (Exception e) {
// TODO Auto-generated catch block
}
return null;
}
public static String aaa() throws Exception{
return "aaa";
}
}