我有一个由多个类实现的接口。我想创建一个JComboBox,其中所有类都使用对象本身作为项目。
这就是我现在使用每行的一行:
JComboBox<Vehicle> box = new JComboBox<>();
box.addItem(new Car());
box.addItem(new Truck());
box.addItem(new Plane());
// could be 5 more lines of object instantiation and adding
当您在JComboBox上调用getSelectedItem()
时,它将返回该对象,该对象将被添加到接口类型列表中。有没有办法通过循环遍历类列表而不是显式实例化每个对象?
答案 0 :(得分:1)
有没有办法通过循环遍历类列表而不是显式实例化每个对象?
不确定这是什么意思?你仍然需要:
这不会保存任何代码并使过程更加复杂。
在任何情况下,回答基本问题是,您可以使用以下代码创建类的实例:
Class aClass = Car.class;
Car car = aClass.newInstance();
因此,您可以使用以下内容创建List:
List<Class> items = new ArrayList<Class>();
items.add( Car.class );
items.add( Truck.class );
然后根据需要迭代List。