java - 如何解决有关需要从特定类扩展的类的 `unchecked` Java 警告?

标签 java class generics

在我的 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/

相关文章:

java - 在运行时检查 --module-path 值

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 0 at proj5. main(proj5.java:15)

javascript - 为什么 Bootstrap 4 在 es6 类中使用私有(private)方法?

c# - 无法通过反射将类型传递给泛型类

java - 如何确保 java 中的集合只包含一种类型?

java - 使用 ReSTLet 客户端发送二进制数据

objective-c - 如何从另一个类访问变量?

C++ 错误 : redefinition of class

java - 从 map 返回一组值

java - 为什么 Tomcat 无法显示实际的堆栈跟踪?