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

时间:2013-05-24 23:26:03

标签: 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 testinteger的值为0

不幸的是,我想,原始类型是不可能的。但是StringIntegerBoolean等类型也是如此?有没有可能得到它?

2 个答案:

答案 0 :(得分:1)

你真的不能这样做;但是,您可以使用Map<String,String>以非动态方式执行此操作。键将是类型+变量名称(您必须对它们进行硬编码),并且值将是与这些变量相关联的实际值(当然,以字符串形式)。

答案 1 :(得分:0)

获取变量名称很困难,但如果您使用Integer代替int,则可以执行以下操作:

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

如果你坚持使用类而不是原语,你可以利用类文字 - 即每个对象的.class变量。