2011-10-03 73 views

回答

5

表达式的“静态类型”是编译器认为它的类型 - 编译时类型。这可能与变量的执行时间类型不同。

例如,考虑这样的:

Object obj = "hello"; 

obj变量的编译时类型(或静态类型)是java.lang.Object。然而,在执行时,obj的值是对java.lang.String类型的对象的引用。

+0

'l'的静态类型是什么,它为什么如此? – Rekha

+0

@Rekha:'l'的静态类型是原始类型'List',因为这是变量被声明的方式。对于变量来说,静态类型很简单 - 它只是声明变量的类型。其他表达式也有静态类型 - 例如,方法调用的静态类型是该方法的返回类型。 –

+0

l.add(0,new Integer(42)); add方法的静态类型第二形式参数是String.But怎么样?它不应该是对象吗? – Rekha

相关问题