安卓强制类型转换
本帖最后由 梦幻大大 于 2021-2-23 08:15 编辑错误信息
java.lang.ClassCastException: com.google.android.material.textview.MaterialTextView cannot be cast to com.google.android.material.textview.MaterialTextView
相关代码
MaterialTextView itemView =(MaterialTextView)ViewUtil.findViewByName(activity, "andorid", "settings_root_layout");
其他
ViewUtil.findViewByName()方法返回的是View类型,是MaterialTextView类型的父类
问题
为什么两个类型一致不能转换?感觉挺诡异的,使用instanceof关键字测试结果为false
是不是不同版本的同名类
输出类全名看看吧 检查下settings_root_layout 不懂Android开发,但是懂Java,Android中强制转换也得符合Java基本法
Java中声明为父类型的对象能够强制转换回子类型的前提是这个对象本身确实是子类型或子类型的子类的对象。
所以应该确认一下ViewUtil.findViewByName()返回的确实是MaterialTextView或MaterialTextView的子类
页:
[1]