gpt4 book ai didi

java - 从具有多个枚举的类中获取枚举

转载 作者:行者123 更新时间:2023-12-02 00:00:19 26 4
gpt4 key购买 nike

我有一个如下所示的类:

public class Catalog {

public enum Table1 implements IExcelEnum{
Name, Date, Id
}

public enum Table2 IExcelEnum {
...
}
}

我可以获取枚举Table1,例如:

System.out.println(Catalog.Table2.Name.value());

但是我想要做的是能够提供字符串或标识符并获取枚举,以便我可以在创建数据对象时引用它。例如:

Data dataCol1 = new Data(Catalog.getEnum("Table1"), ArrayList<String> values);

我有一个名为 IExcelEnum 的接口(interface),它没有任何字段,它只是让我可以通用地键入我的枚举,以便我的数据结构愿意接受其中的任何字段。

最干净的方法是什么?

最佳答案

您可能需要像这样使用反射:

    public class Catalog
{
public interface I
{
}

public enum T1 implements I
{
A, B, C;
}

public enum T2 implements I
{
D, E, F;
}

public static void main (String [] args) throws Exception
{
String name = "T1";

Class <? extends I> c =
(Class <? extends I>)Class.forName (
Catalog.class.getName () + "$" + name);

I [] values = (I [])c.getMethod ("values").invoke (null);

for (I i: values)
System.out.println (i);
}
}

关于java - 从具有多个枚举的类中获取枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14966126/

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