我有个主意。
制作testVariable
of 类型Object
(或DummyType
扩展的类Object
)。然后,您可以根据从系统变量中读取的内容,使用原始包装类使用您想要的任何数据加载变量。
所以:
public class Test {
Object testVariable;
{
String whichType = null;
//Logic to read your system variable from wherever and store it in whichType
if(whichType.equals("int")) {
testVariable = new Integer(intVal);
}
else if(whichType.equals("double")) {
testVariable = new Double(doubleVal);
}
//etc.
}
当然,这并不是 Java 在编译时像你想要的那样“弄清楚”它是哪种类型,必然(并且分配将在运行时发生,当Test
对象被创建时),但这似乎是一个合理的框架选择。
当然,您也可以根据需要设置testVariable
初始化时的值。
或者,你可以有一个像这样的方法,它接受输入作为String
(从你的系统变量中读取)并在原始类型的适当包装类中返回它:
public Object getPrimitiveValue(String type, String value) {
if(type.equals("int")) {
return new Integer(Integer.parseInt(value));
}
else if(type.equals("double")) {
return new Double(Double.parseDouble(value));
}
//etc.
}