Java是否从该类的字符串中声明一个类对象?

Java是否从该类的字符串中声明一个类对象?,java,dictionary,Java,Dictionary,我有一个客户端提供的脚本,如下所示 segment-id Integer segment-description String 现在我想用以下方法构建一个类 Sample sample = new Sample(); // casting to the type specified in the script (map.get("segment-id")) segmentId = sample.get("segment-id"); // Now it can be used as an I

我有一个客户端提供的脚本,如下所示

segment-id Integer
segment-description String
现在我想用以下方法构建一个类

Sample sample = new Sample();

// casting to the type specified in the script
(map.get("segment-id")) segmentId = sample.get("segment-id");

// Now it can be used as an Integer
Integer result = segmentId + 2;

有可能做像这样的事情吗

Class<map.get("segment-id")> segmentId = new Class<map.get("segment-id")>();

但通过这种方式,我必须知道在高级
中,段id
的类型是
Integer

您可以使用
Class.forName()
获取类,使用
.newInstance()
获取新实例:

Object createdObject = Class.forName("java.lang.String").newInstance();
或者

Object createdObject = Class.forName("java.lang.Integer").newInstance();
如果您需要知道它是否是字符串:

if(createdObject instanceof String) {
    String castValue = (String) createdObject;
    ...
}

if(createdObject instanceof Integer) {
    Integer castValue = (Integer) createdObject;
    ...
}
但您可以只测试传入字符串:

if("java.lang.String".equals(nameOfClassToCreate)) {
    ....
}

你说的“那个类的字符串”是什么意思?他的意思是实例化一个给定名称字符串表示的类。这可以使用反射完成,但您需要完全限定的类名。@Stultuske:该类的字符串名
if("java.lang.String".equals(nameOfClassToCreate)) {
    ....
}