我有以下方法。它给StackoverflowError。任何原因?
SomeClass.java
public static <T extends BaseClass> T newObject(Class<T> classOfT, Emp data) {
return newObject(classOfT, data);
}
newObject方法的实现
private static <T extends BaseClass> T newObject(Class<T> classOfT, Object data) {
//some logic and return subclass instance of BaseClass
}
在这里newObject方法被递归调用。但是为什么不调用私有的newObject方法呢?
谢谢!
最佳答案
更改为
public static <T extends BaseClass> T newObject(Class<T> classOfT, Emp data) {
return newObject(classOfT, (Object)data);
}
Uppercast
第二个参数为Object
类型。这将对适合方法签名的私有方法进行适当的调用