我在使用通用方法时遇到了麻烦
编译类:
public class Something<T> {
public static Something newInstance(Class<T> type){};
public <T> void doSomething(T input){};
}
我的方法是:
public <S> void doOtherThing(S input){
Something smt = Something.newInstance(input.getClass());
smt.doSomething(input); // Error here
}
它在编译时出错:
没有为 doSomething(T) 找到合适的方法 T 不能转换为捕获#1 of ?扩展 java.lang.Object …
我认为可能有避免这种情况的技巧,请帮忙
原文由 lethanh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为
input.getClass()
需要转换为Class<T>