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)) {
....
}