【发布时间】:2011-12-02 14:26:50
【问题描述】:
是否可以根据参数更改 Java 中的方法签名?
示例:
给定一个类,带有一个泛型参数MyItem<T>。
假设这个类有一个方法,它返回T
给定第二个类 'myReturner()',其中包含方法 myreturn(MyItem<T>)。
问题:
我可以让myreturn(MyItem<T>) 返回一个 T 对象,这取决于 MyItem 的泛型参数吗?
我想这是不可能的,因为签名是在 Java 的编译时设置的,而 T 在编译时是未知的。 如果是这样,模拟方法的最佳方法是什么,该方法将根据参数返回不同的对象? 为每个参数类型编写自己的方法是唯一的方法吗?
【问题讨论】:
-
为什么会这样:编译 Java 时只需将
Object myreturn(MyItem)作为方法输出,删除任何通用信息。这个方法显然可以接受任何对象。 -
据我猜测 Viruzzo 的链接应该在这个链接的某个地方:docs.oracle.com/javase/tutorial/java/generics/methods.html
标签: java generics methods signature