Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表l=新阵列列表<;数量>;(); l的静态类型是List<;数量>;?这是什么意思? listl=newarraylist();_Java - Fatal编程技术网

Java 列表l=新阵列列表<;数量>;(); l的静态类型是List<;数量>;?这是什么意思? listl=newarraylist();

Java 列表l=新阵列列表<;数量>;(); l的静态类型是List<;数量>;?这是什么意思? listl=newarraylist();,java,Java,l的静态类型是List? 这里的“静态类型”是什么意思? 我在sun的java教程中读到过,表达式的“静态类型”是编译器认为的类型—编译时类型。这可能与变量值的执行时间类型不同 例如,考虑这一点: List l = new ArrayList<Number>(); obj变量的编译时类型(或静态类型)是java.lang.Object。然而,在执行时,obj的值是对类型为java.lang.String的对象的引用,这里“l”的静态类型是什么,为什么是这样?@Rekha:l的静态类

l的静态类型是List? 这里的“静态类型”是什么意思? 我在sun的java教程中读到过,表达式的“静态类型”是编译器认为的类型—编译时类型。这可能与变量值的执行时间类型不同

例如,考虑这一点:

List l = new ArrayList<Number>();

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

的对象的引用,这里“l”的静态类型是什么,为什么是这样?@Rekha:l的静态类型是原始类型
列表
,因为变量就是这样声明的。对于变量,静态类型很简单——它只是声明变量的类型。其他表达式也有静态类型——例如,方法调用的静态类型是该方法的返回类型;add方法的静态类型第二个形式参数是String。但是如何呢?它不应该是Object吗?@Rekha:是的,在这种情况下,第二个形式参数的静态类型确实是Object——但只有在使用原始类型的变量
l
时才是。你确定你没有想到另一个问题中的
ls
,这是一个
列表
Object obj = "hello";