今天犯了一个错误,代码如下:
class A {
private Context context;
A (Context ctx) {
this.context = ctx;
}
private String[] tittle = new String[]{context.getString(R.string.quick_login), context.getString(R.string.account_pwd_login)};
}
title数组不会初始化成功,原因是构造函数晚于字段的初始化。
所以上面字符串数组不可能初始化成功,但是“编译”却可以成功!那么,要么这样写咯:
public LoginPagerAdapter(GowildBaseActivity context) {
this.context = context;
this.tittle = new String[]{
context.getString(R.string.quick_login), context.getString(R.string.account_pwd_login)
};
}
要么这样写:
private String[] tittle = new String[]{“快速登录”, "账号密码登录"};
这才可能成功。
本文探讨了Java中构造函数执行时机与字段初始化的关系,解释了为何在构造函数中使用未完全初始化的对象可能导致错误,并提供了正确的初始化方法。
2972

被折叠的 条评论
为什么被折叠?



