【发布时间】:2011-02-10 02:23:53
【问题描述】:
假设我声明了一个变量:
String a = "test";
我想知道它是什么类型,即输出应该是java.lang.String我该怎么做?
【问题讨论】:
-
你真的对变量的类型感兴趣吗?还是你关心值的类型?因为变量的类型不容易获取(实际上局部变量根本无法获取,需要对字段进行反射)。
-
@Paul:考虑
Object o = "o";——变量的类型是Object,值的类型是String。 -
@Paul 在
List<String> l = new ArrayList<String>();中,变量的类型是List<String>,值的类型是ArrayList<String>。 -
@Ben Lings 变量的类型是java.util.ArrayList,值的类型是java.util.ArrayList。
-
@AjayThakur - 这是编译时(静态)类型和运行时(动态)类型之间的区别。