gpt4 book ai didi

java - Java 中的通用静态方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:22 27 4
gpt4 key购买 nike

我想要一个通用方法,它用从 Element 类继承的对象填充列表我的代码如下所示:

public static <T extends Element> List<T> getElement(ElementType type){
List<T> elements = new ArrayList<>();
switch(type){
case LIGHT:
elements.add(new Light(id,bezeichnung,beckhoffVars, false));
break;
case LIGHTDIM:
elements.add(new LightDim(id,bezeichnung,beckhoffVars, false, 0));
break;
return elements;
}

但是编译器说: List 类型中的方法 add(T) 不适用于参数 (Light)
List 类型中的方法 add(T) 不适用于参数 (LightDim)

最佳答案

如果您确实想创建任何所需类的列表,请尝试此

public static <T> List<T> getElement(Class<T> t) {
List<T> elements = new ArrayList<>();
return elements;
}

你通过这样做来调用这个

List<String> list = getElement(Light.class);

你可以切换类的名称(如果我记得java 7中允许切换字符串),如果我错了,你可以将类名翻译为枚举。

如果你想为数组创建单个元素,则不需要 switch 语句,你可以通过反射来完成此操作。

但这不是正确的方法,正确的方法是创建为您要使用的所有对象共享的类型列表,在您的情况下 Element

关于java - Java 中的通用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com