「java取变量名称」java中的变量名称

博主:adminadmin 2022-12-21 05:27:09 90

今天给各位分享java取变量名称的知识,其中也会对java中的变量名称进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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

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

1、通过反射获取

package test;

import java.lang.reflect.Field;

public class Demo2 {

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

String op = "strA";

Test t = new Test();

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

        Field strs = Test.class.getDeclaredField(op);

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

        strs.setAccessible(true); 

        // 得到私有的变量值

        String[] as = (String[]) strs.get(t);

        

        

System.out.println(as.length);

}

}

class Test {

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

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

}

2、通过map设置获取

package test;

import java.util.HashMap;

import java.util.Map;

public class Demo2 {

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

MapString,String[] map = new HashMapString,String[](); 

        map.put("strA", new String[]{"a","str","c"}); 

        map.put("strB", new String[]{"d","e","f"}); 

        String op = "strB"; 

        

        String result = map.get(op)[0]; // "d" 

}

}

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

java 如何获取变量的名字

临时变量没办法获取,如果要用到这样的变量,可以定义一个特定的类。

类变量的话可以用反射获取

java如何通过代码获取局部变量名称?

Java中获得变量名可以通过类实例化,形如:ClassTest cl = new ClassTest();cl.l;来获得局部变量名为l的变量。 局部变量一般是在for循环语句中使用,在代码片段执行完之后,变量便会被回收,失去引用。

java 怎么获得变量名(不用反射机制)

这个估计用反射也做不到…

int

name,然后getName(name)是将name的值传给了getName函数,没有传引用。

可以反查,getName(5)又name=5,所以得到“name”;但是如果int

name=5;

int

version=5;那么getName(5)就不唯一了。

所以你的设想实现不了。

有一种实现机制是:

name作为属性有getter和setter,在getter中触发事件广播送出变量名称,这样外界就可以得到这个名字。

目前Java还不支持这种机制:

int

name

{

getter:

function()

{

broadcast

("name");

return

value;}

setter:

function(newval)

{value

=

newval;}

};

要想实现,需要改造

虚拟机

,用JNI写Native方法实现,或者用Java写模拟器模拟也可以。

java中怎样获取变量名?(主函数中定义的);

对于局部变量是不可能的,因为变量名不是程序运行的必要部分,变量名在编译的时候就去除了。

对于成员变量,可以参见[1],使用Fields.getName() 获取

在编译Java的时候加上-g选项可以保留变量名,但这只用于调试。关键看你怎么用这个“变量名”了.如果你的情况和[2]一样,不妨编程的时候换个思路。

[1]

[2]

java取变量名称的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中的变量名称、java取变量名称的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-21,除非注明,否则均为首码项目网原创文章,转载请注明出处。