【发布时间】:2016-12-02 00:26:28
【问题描述】:
我想要一个返回泛型类型的方法。假设我有一个父类和 10 个子类。父类没有定义任何方法,子类具有不同的功能(它们没有共同点)。我想根据一些输入创建一个子类的对象。 (无法创建父对象,因为我无法调用类的方法)。所以我想编写一个在其中创建对象并在主函数中返回的函数。我想将 T 作为返回类型。如何从 main 调用。
public static <T> T fun() {
if (some condition) {
return new Class1();
} else {
return new Class2();
}
}
如何为正确的类调用函数?
Class xyz = fun();
【问题讨论】:
-
通过使“某些条件”为真或假来做到这一点不是很明显吗?
-
这不是有效的 Java,因为该方法缺少返回类型。它也不起作用,因为
Class1和Class2都与T不兼容,假设您要返回类型T。如果返回类型不应该是T,那么T的意义何在? -
看那里的代码,我猜你并不完全理解泛型以及它们能做什么。你真正想做什么?
-
我想要做的是返回一个class1或class2的对象并将它分配给另一个函数中的一个对象。
-
我想返回类型 T。我已将 T 添加为返回类型,是的,我是泛型新手
标签: java generics dynamic types generic-programming