Java 什么时候应该使用泛型参数,什么时候应该使用父类作为参数

Java 什么时候应该使用泛型参数,什么时候应该使用父类作为参数,java,Java,两者之间有什么区别?我应该什么时候使用 通用: public static <T extends SomeClass> void doSomething(T class) { } 因为,这两种方法实际上是相同的 这样的泛型只有在从方法返回T的实例时才有用。一个简单的例子是将存储在某处的对象强制转换为预期的类型(这是不安全的,因为我们没有实际检查它是否确实是T的实例,但这是另一回事) publicstatict-get(字符串名){ 返回(T)fancyLookup(名称) } 私有

两者之间有什么区别?我应该什么时候使用

通用:

public static <T extends SomeClass> void doSomething(T class)
{
}
因为,这两种方法实际上是相同的

这样的泛型只有在
从方法返回
T
的实例时才有用。一个简单的例子是将存储在某处的对象强制转换为预期的类型(这是不安全的,因为我们没有实际检查它是否确实是
T
的实例,但这是另一回事)

publicstatict-get(字符串名){
返回(T)fancyLookup(名称)
}
私有静态对象fancyLookup(字符串名称){…}
所以要回答你的问题:

两者之间有什么区别? 没有,在运行时,它们实际上是相同的

我应该什么时候使用?
喜欢没有泛型的方法,因为它们是一样的,在不需要泛型的情况下引入泛型只会使代码复杂化。

没有区别,两者都是模板静态方法,一个采用类的模板定义,另一个采用相同的类,但使用类名而不是模板。
public static void doSomething(SomeClass class)
{
}
public static <T extends SomeClass> T get(String name) {
    return (T) fancyLookup(name)
}

private static Object fancyLookup(String name) { ... }