在我的 Android Java 应用程序中,我有一个方法:
private <T extends Message> ReturnObject doSomething(Class<T> type) {
// Implementation
}
如您所见,参数type
应该扩展类Message
。
现在,情况就是这样;我将方法 doSomething
称为:
@Override
public void myMethod(Class type){
doSomething(type);
}
请注意,我的方法覆盖了另一个方法。
弹出警告:
[unchecked] unchecked method invocation: method doSomething in class
Class is applied to given types
required: Class<T>
found: Class
where T is a type-variable:
T extends Message declared in method <T>doSomething(String,Class<T>)
如何解决这个警告?
最佳答案
@Override
public void myMethod(Class type) {
Class<? extends Message> mtype = type.asSubclass(Message.class);
doSomething(mtype);
}
最好是删除非泛型类型不安全的重写方法:
public void myMethod(Class<?> type) {
甚至更好修复基类方法。
关于java - 如何解决有关需要从特定类扩展的类的 `unchecked` Java 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55651851/