和尚我最近被问到一个问题,使用 Kotlin 时出现 '…has private access in…' 无法获取其他类中实体或属性。用 Java 实现时,一个 public 即可访问到,但是 Kotlin 中只有 var 和 val,在之前加上 public 并不能直接解决问题。 和尚我按照自己的理解和日常使用方法,粗糙的说一下。
实体类:
属性:
class FragmentEightK : BaseFragment() {
@JvmField var address = "北京市海淀区"
// var address = "北京市海淀区"
open var user = UserBean()
override fun initViews(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View {
val view = inflater?.inflate(R.layout.fragment_four, null)
return view!!
}
override fun initData() {
user.age = 10
user.name = "张三"
}
override fun onPause() {
super.onPause()
Log.e("Fragment-地址", address)
}
override fun clearData() {
}
override fun setDefaultFragmentTitle(title: String?) {
}
}
Kotlin Fragment 中初始化以及更新数据(仅测试)
ivToolbarTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("Activity-地址",fragmentEightK.address);
fragmentEightK.address = "北京市昌平区";
// fragmentEightK.address = null;
Log.e("姓名:"+fragmentEightK.getUser().name,"年龄:"+fragmentEightK.getUser().age);
}
});
Activity 中获取数据以及重新赋值(仅测试)
下面的是和尚的公众号,欢迎关注哦~