MutableList用作关键字
`when(msg?.what){
MESSAGE_GET_LIST -> {
if (msg.obj != null && msg.obj is MutableList<*>){
list = msg.obj as MutableList<BaseIncomeBean>
`
当我收到一条消息并想使用它时,我必须隐藏到MutableList使用作为关键字
最后构建我的项目并出现以下警告
Warning:(51, 40) Unchecked cast: Any! to MutableList<BaseIncomeBean>
如何修复此警告?
静态编程语言具有智能强制转换。但是泛型在运行时被擦除。因此您永远不知道列表内容的类型。只需将其转换为MutableList即可
if (msg.obj is MutableList<*>)
list = msg.obj as MutableList<*>
但是既然您设置了项目,您就知道强制转换应该是成功的。在这种情况下,您可以告诉编译器忽略警告:
if (msg.obj is MutableList<*>)
@Suppress("UNCHECKED_CAST")
list = msg.obj as MutableList<BaseIncomeBean>
你能改变if语句吗:
如果(msg. arg1==AsyncActionCallback.RESULT_OK
从MutableList
"*"在kotlin中表示any,在java中表示Object。如果返回一个对象引用,在转换另一个类之前必须检查返回值是否是类引用。因为返回值被标记为对象,所以可能返回的是不同的类引用。IDE不知道这一点。