java 中怎么获得以该字符串命名的变量

java 中怎么获得以该字符串命名的变量,第1张

实现以上场景,在java中有多种方法,最直接方式的是通过反射获取,但是反射有较大的性能损耗,一般不建议用在运行阶段反射,大多开源框架是在初始化的时候通过反射来实例化。

1、通过反射获取

package test;

import javalangreflectField;

public class Demo2 {

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {

String op = "strA";

Test t = new Test();

// /通过类的字节码得到该类中声明的所有属性,无论私有或公有

        Field strs = TestclassgetDeclaredField(op);

        // 设置访问权限(这点对于有过android开发经验的可以说很熟悉)

        strssetAccessible(true); 

        // 得到私有的变量

        String[] as = (String[]) strsget(t);

        

        

Systemoutprintln(aslength);

}

}

class Test {

private String[] strA = new String[]{"a","b","c"}; 

private String[] strB = new String[]{"d","e","f"}; 

}

2、通过map设置获取

package test;

import javautilHashMap;

import javautilMap;

public class Demo2 {

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException {

Map<String,String[]> map = new HashMap<String,String[]>(); 

        mapput("strA", new String[]{"a","str","c"}); 

        mapput("strB", new String[]{"d","e","f"}); 

        String op = "strB"; 

        

        String result = mapget(op)[0]; // "d" 

}

}

以上两种方法虽然都能实现需求,但是在实际情况中还是得看具体的情况来界定选择。

通过 super变量名  获取父类中的变量值

举例:

public class Parent{//定义父类Parent

   public int a=1;//定义父类中的一个变量a

}

public class Son extend Parent{//定义子类son,继承父类parent

   public void show(){

     int b = supera;//通过super访问父类变量a,获取值赋值给b

   }

}

以上就是关于java 中怎么获得以该字符串命名的变量全部的内容,包括:java 中怎么获得以该字符串命名的变量、java中怎样获取父类中的变量值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9757216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存