SWoeste 是正确的反射是用于类似于你的任务的东西,但它使用起来不是很简单。
事实上,您的问题与摇摆(或 GUI)无关。您正在解决“如何从字符串创建对象”问题。(或者至少可以简化为它)。如果您的用户是您所写的程序员,我认为非常简单的解决方案是使用 JSON(我认为它使用非常简单易懂的格式),我的代码适用于gson 1.6。
如果我有一个对象,比如说 FullTimeWorker,它扩展了 Person:
人
package net.betlista.gson;
public class Person {
private String name;
private String surname; // no setter
public String getName() {
System.out.println( "Person#getName()" );
return name;
}
public void setName( final String name ) {
this.name = name;
}
}
全职工作者
package net.betlista.gson;
public class FullTimeWorker extends Person {
private double salary;
}
现在您可以将 FullTimeWorker 类创建为
package net.betlista.gson;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class DeserializationTest {
public static void main( final String[] args ) {
final GsonBuilder gb = new GsonBuilder();
final Gson gson = gb.create();
// {
// "salary": 1234.5,
// "name": "John",
// "surname": "Doe",
// }
final String in = "{\"salary\":1234.5,\"name\":\"John\",\"surname\":\"Doe\"}";
final FullTimeWorker w = gson.fromJson( in, FullTimeWorker.class );
}
}
图形用户界面
您现在在 GUI 中只需要插入 JSON 字符串的 JTextField(或更好的 JTextArea)、用于类选择的 JComboBox 和 JButton,就这么简单。
很明显,您的 GUI 几乎可以完美 - 它只取决于您的想象力,但我不确定是否有比这更简单的东西 ;-)