方法声明中Generic类型和Object有什么区别?

时间:2014-06-17 16:53:09

标签: java generics method-signature

我很困惑我应该为同一目的使用哪种方法Signature?两者都适合我。

1

public <T, J> T findUniqueByCondition(String tableName, 
                                      String key, 
                                      J value, 
                                      Class<T> targetObject);

2

public <T> T findUniqueByCondition(String tableName, 
                                   String key, 
                                   Object value, 
                                   Class<T> targetObject);

从上面使用哪种方法最佳?我真的很困惑,无法找到任何人的优势或劣势?有没有?如果是,请解释。

1 个答案:

答案 0 :(得分:12)

就像那样没有区别,因为T你使用的是两次类型,所以你有理由使用它,但对于J它只使用一次。

如果它真的可以是任何对象而你再也不使用那种类型那么就没有理由使用泛型。泛型允许您获取方法的返回类型和参数,并将它们中的两个或多个链接在一起。它们还允许您在类定义中使用泛型时将多个方法链接在一起。

这些用例都不适用于此。