List l = new ArrayList <Number>(); l的静态类型是List <Number>?那是什么意思?

Rek*_*kha 4 java

List l = new ArrayList<Number>();
Run Code Online (Sandbox Code Playgroud)

l的静态类型是List?这里的"静态类型"是什么意思?我在sun的java教程中读到了它

Jon*_*eet 5

表达式的"静态类型"是编译器认为的类型- 编译时类型.这可以是来自不同的执行时类型的的可变的.

例如,考虑一下:

Object obj = "hello";
Run Code Online (Sandbox Code Playgroud)

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