4
List l = new ArrayList<Number>();
l的静态类型是List? 这里的“静态类型”是什么意思? 我在sun的java教程中看到它List l = new ArrayList <Number>(); l的静态类型是List <Number>?那是什么意思?
List l = new ArrayList<Number>();
l的静态类型是List? 这里的“静态类型”是什么意思? 我在sun的java教程中看到它List l = new ArrayList <Number>(); l的静态类型是List <Number>?那是什么意思?
表达式的“静态类型”是编译器认为它的类型 - 编译时类型。这可能与变量的值的执行时间类型不同。
例如,考虑这样的:
Object obj = "hello";
的obj
变量的编译时类型(或静态类型)是java.lang.Object
。然而,在执行时,obj
的值是对java.lang.String
类型的对象的引用。
'l'的静态类型是什么,它为什么如此? – Rekha
@Rekha:'l'的静态类型是原始类型'List',因为这是变量被声明的方式。对于变量来说,静态类型很简单 - 它只是声明变量的类型。其他表达式也有静态类型 - 例如,方法调用的静态类型是该方法的返回类型。 –
l.add(0,new Integer(42)); add方法的静态类型第二形式参数是String.But怎么样?它不应该是对象吗? – Rekha