我有一个通用的类,如下所示:
MyClass<T>
{
....
}
现在,我想要创建一个通用方法,例如public MyClass<T> getMyClassInstance(Type t){...}
,其中我传递了一个类型,并且该方法给出了MyClass
具有该类型的实例。
请参阅以下示例。
如果按以下方式调用此方法getMyClassInstance(Integer_type)
,则它将返回该MyClass<Integer>
实例。
同样,如果我按以下方式调用此方法getMyClassInstance(String_type)
,则它将返回MyClass<String>
实例。
我应该怎么写这个方法?如果无法完成,是否有其他替代方法或另一种更好的方法来执行类似的操作?
对于此的简单应用,您甚至不需要传递Type
or或Class
参数。考虑以下:
public <T> List<T> getList() {
return new ArrayList<>();
}
要使用它很简单:
List<Integer> lst = getList();
编译器将推断所需列表的类型。
请注意,通过传递Type
参数将获得更大的灵活性,尤其是在您可能事先不知道List
要返回哪种类型的情况下。但是这种语法,恕我直言,读起来更自然,可能适合您想要做的事情。(我说“可以”,因为您没有提供很多细节...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句