泛型preference委托 检查出类型不安全时,但您又确定当前类型是安全的。Unchecked cast: Any! to T
这时可以使用注解 在方法上添加一个注解@SuppressWarnings(“unchecked”) 不让他去检查这个值
例如1:
@SuppressWarnings("unchecked")
public static <T> T cast(Object obj) {
return (T) obj;
}
例如2:
@SuppressWarnings("unchecked")
private fun findPreferenceByName(name: String, default: T): T = with(ref) {
val res:Any?= when (default) {
is Int -> getInt(name, default)
is Boolean -> getBoolean(name, default)
is String -> getString(name, default)
is Long -> getLong(name, default)
is Float -> getFloat(name, default)
else -> throw IllegalArgumentException("this type not support")
}
return res!! as T
}
完整的自定义委托对象by Delegates.notNull()