我正在浏览EntityManager.java
,我看到了
public <T extends Object> T find(Class<T> type, Object o, LockModeType lmt, Map<String, Object> map);
我从未在类方法定义中看到<X>
类型声明。这是什么意思?
public <T extends Object> T find(
似乎正在定义T将扩展另一个类。我是否理解这需要您扩展另一个对象?
答案 0 :(得分:8)
public <T extends Number> T find()
这意味着您定义了一个generic函数,为了定义,该函数的类型参数由T表示。 T必须是Number的子类(extends)。该函数返回T类型的对象。
然后你可以这样调用这个函数:
Double d = find();
Integer i = find();
但是以下是编译时错误:
String s = find(); //error
因为String没有扩展Number。
答案 1 :(得分:0)
这是使用Java 5引入的“Generics”。http://en.wikipedia.org/wiki/Generics_in_Java提供了概述。
答案 2 :(得分:0)