在hibernate中获取泛型方法的意义

时间:2016-11-14 12:05:13

标签: java generics jpa

看到这个方法定义:

<Y> Path<Y> get(String attributeName);

http://grepcode.com/file/repo1.maven.org/maven2/org.hibernate.javax.persistence/hibernate-jpa-2.0-api/1.0.1.Final/javax/persistence/criteria/Path.java?av=h#122

如何用简单的词语描述这种方法在做什么?

有关此类通用语法的任何官方文档?

2 个答案:

答案 0 :(得分:0)

我认为Wikipedia总结了这个例子:

public static <Type> Entry<Type, Type> twice(Type value) {
    return new Entry<Type, Type>(value, value);
}
  

注意:如果我们删除上述方法中的第一个,我们将得到编译错误(找不到符号&#39; Type&#39;)因为它代表了符号的声明。

在您引用的方法签名中,第一个<Y>是类型的声明。最有可能的是,如果它被删除,编译器将无法推断它是什么类型。

答案 1 :(得分:0)

谢谢@Tim Biegeleisen。我认为可以更好地解释这个想法,但两者都是有效的

https://docs.oracle.com/javase/tutorial/extra/generics/methods.html