gpt4 book ai didi

java - 如何使用同名字符串引用类

转载 作者:行者123 更新时间:2023-12-02 07:03:54 28 4
gpt4 key购买 nike

假设我有两个实现接口(interface) A 的类 Foo 和 Bar。我想要创建 Foo 或 Bar 的 ArrayList。在命令行参数中,用户必须输入 Foo 或 Bar 来确定他们尝试创建 ArrayList 的对象。

所以:

public static void main(String [] args){
String type = args[0];
ArrayList<type> list = new ArrayList<type>();
}

如何从字符串类型转到对 Foo 或 Bar 类的引用,以便它执行

ArrayList<Foo> list = new ArrayList<Foo>();
or
ArrayList<Bar> list = new ArrayList<Bar>();

这样我可以执行以下操作:

for(int i = 0 ; i < list.size() ; i++){
list(i).doSomething();
//doSomething is a function in interface A that Foo and Bar are required to implement
}

明确地说,我不想要类似的东西

if (type.equals("Foo")) list = ArrayList<Foo>();

我希望能够使用任何与类型同名的有效类创建 ArrayList。

最佳答案

编译器需要知道类型,听起来您想将类型视为运行时变量而不是编译时事实。

查看Get generic type of class at runtime 。它本质上会问同样的事情,您将获得有关使用反射的可能解决方案的良好信息。

关于java - 如何使用同名字符串引用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327514/

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