Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在java中获取变量的名称和/或类型吗?_Java - Fatal编程技术网

可以在java中获取变量的名称和/或类型吗?

可以在java中获取变量的名称和/或类型吗?,java,Java,在我的应用程序中,如果可能的话,我想打印一个变量的值和名称 例如: int testinteger = 0; String type = > type of testinteger? (int); String name = > name of testinteger? (testinteger); System.out.println("The "+type+" "+name+" has a value of"+ testinteger); 所以我想读一下:int testi

在我的应用程序中,如果可能的话,我想打印一个变量的值和名称

例如:

int testinteger = 0;
String type = > type of testinteger? (int);
String name = > name of testinteger? (testinteger);


System.out.println("The "+type+" "+name+" has a value of"+ testinteger);
所以我想读一下:int testinteger的值是0


不幸的是,我想,对于基元类型是不可能的。但是像
String
Integer
Boolean
等类型也是这样吗。?是否有可能获取它?

获取变量名很困难,但如果使用
整数
而不是
整数
,则可以执行以下操作:

Integer testInteger = 1;
String type = testInteger.class.getName();
System.out.println(type);

如果你坚持使用类而不是原语,你可以利用类的文字——也就是每个对象的
.class
变量;但是,您可以使用
映射
以非动态方式执行此操作。键是类型+变量名(您必须硬编码),值是与这些变量相关联的实际值(当然是字符串形式)

你真的应该解释一下你为什么要回答这个问题。@Curtos我不认为这是一个重复的问题。在这个问题中,所讨论的本地标识符在作用域中,并且仅在作用域中使用。基本上,它是问是否有可能做
nameOf identifier->String
typeOf identifier->TypeOrClass
@RichardJPLeGuen我认为这更接近于重复,但这个问题的前提仍然取决于“反射”。如果Java确实支持这样的
nameOf/typeOf
操作符(它不支持),那么它们将对编译时信息进行操作,并且独立于反射(很像
obj.class
)。