gpt4 book ai didi

java - 通过字符串获取实例化对象

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:31 26 4
gpt4 key购买 nike

是否有可能在运行时通过字符串获取在代码中实例化的对象?

类似的东西:

public String xyz = "aaaa_bbb";

getObject("xyz").some function of String (e.g.: .split("_"))

谢谢

最佳答案

举个例子

如果是类字段,可以这样通过名字获取。

import java.lang.reflect.Method;


public class Test {


public String stringInstance = "first;second";

public void Foo() {


try {
Object instance = getClass().getDeclaredField("stringInstance").get(this);
Method m = instance.getClass().getMethod("split", String.class);

Object returnValue = m.invoke(instance, ";");
if(returnValue instanceof String[])
{
for(String s : (String[])returnValue )
{
System.out.println(s);
}
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String a[]){
new Test().Foo();
}



}

如果它是您尝试调用的局部方法变量,那么您可以从调用堆栈 Thread.currentThread().getStackTrace() 也许。

关于java - 通过字符串获取实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092972/

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