<x>在java方法声明中的含义是什么?</x>

时间:2011-12-05 04:26:32

标签: java generics

我正在浏览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将扩展另一个类。我是否理解这需要您扩展另一个对象?

3 个答案:

答案 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)