gpt4 book ai didi

java - (Java) 获取加载到动态类型对象中的字符串值?

转载 作者:行者123 更新时间:2023-12-02 07:45:55 26 4
gpt4 key购买 nike

我对 Java 还很陌生(大约 10 天),所以我的代码可能很糟糕,但这是我得到的:

ArgsDataHolder argsData = new ArgsDataHolder();  // a class that holds two
// ArrayList's where each element
// representing key/value args
Class thisArgClass;
String thisArgString;
Object thisArg;

for(int i=2; i< argsString.length; i++) {
thisToken = argsString[i];
thisArgClassString = getClassStringFromToken(thisToken).toLowerCase();
System.out.println("thisArgClassString: " + thisArgClassString);
thisArgClass = getClassFromClassString(thisArgClassString);

// find closing tag; concatenate middle
Integer j = new Integer(i+1);
thisArgString = getArgValue(argsString, j, "</" + thisArgClassString + ">");

thisArg = thisArgClass.newInstance();
thisArg = thisArgClass.valueOf(thisArgString);
argsData.append(thisArg, thisArgClass);
}

用户基本上必须按以下格式在命令提示符中输入一组键/值参数:<class>value</class> ,例如<int>62</int> 。使用此示例,thisArgClass将等于 Integer.class , thisArgString将是一个字符串“62”,并且 thisArg将是等于 62 的 Integer 实例。

我试过thisArg.valueOf(thisArgString) ,但我猜valueOf(<String>)只是 Object 的某些子类的方法。无论出于何种原因,我似乎无法将 thisArg 转换为 thisArgClass (如下所示: thisArg = (thisArgClass)thisArgClass.newInstance(); ,此时 valueOf(<String>) 应该可以访问。

必须有一种好的、干净的方法来做到这一点,但目前这超出了我的能力。如何获取加载到动态类型对象(Integer、Long、Float、Double、String、Character、Boolean 等)中的字符串值?或者我只是想太多了,Java 会为我完成转换? :困惑:

最佳答案

I can't seem to be able to cast thisArg to thisArgClass (like so: thisArg = (thisArgClass)thisArgClass.newInstance();,

这不会像这样工作,因为您需要首先初始化 thisArgClass。这将产生编译时错误。将代码更改为如下所示:

Class thisArgClass = null;
try {
Object thisArg = thisArgClass.newInstance();
} catch (InstantiationException ex) {
Logger.getLogger(Test3.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Test3.class.getName()).log(Level.SEVERE, null, ex);
}

希望这对您有帮助。

关于java - (Java) 获取加载到动态类型对象中的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876236/

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