我想写一个使用泛型参数的Java中的方法,我想限制为三个可能的类(Field
,Method
或Constructor
)之一。是否可以将泛型类型扩展为Java中的多个类?
我试过下面的头:
private static <T extends Field,Method,Constructor> T[] sort(T[] anArray)
但这种方式却忽视了Method
型或Constructor
的泛型参数。使用下面的也产生了一个错误:
private static <T extends Field | Method | Constructor> T[] sort(T[] anArray)
是否有可能做这样的事情在Java
?
只是为了澄清:我们谈论的是java.reflect.Field,java.reflect.Method和java.reflect.Constructor是不是我们? – JonK
是的。更具体地说,这个方法应该通过比较它们的名字来对这些类的数组进行排序(使用'java.lang.reflect'中这些类的'getName()'方法)。这就是为什么我需要限制这三个类的类型,因为并不是所有的类都有'getName'方法。显然,正如Codebender提到的那样,使用“extends Member”正是我需要的!尽管如果Java提供了一种不需要使用超类/接口的方法,这将会很酷。 – programmar