gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:57:22 24 4
gpt4 key购买 nike

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

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")>();

或者有更好的解决方案...?我需要一种创建特定类型对象的方法,但我事先并不知道。

我当前的解决方案是

public Integer getInteger(String key) {
return map.get(key);
}

但这样我就必须知道高级segment-idInteger类型。

最佳答案

您可以使用 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)) {
....
}

关于Java从该类的字符串中声明一个类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55897578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com