java 字符串是类名.class 如何实例化_java – 通过String获取实例化对象

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

这样的事情:

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,object,field,string

来源: https://codeday.me/bug/20190521/1149084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值