Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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 数组文字仅可用于声明?_Java_C#_Arrays_Literals - Fatal编程技术网

Java 数组文字仅可用于声明?

Java 数组文字仅可用于声明?,java,c#,arrays,literals,Java,C#,Arrays,Literals,我的问题是,为什么会这样?我的意思是,第2行和第3行的区别在哪里?这就是java或C的工作方式,伙计,我真的不能对此抱怨。。如果我们谈到编程语言语义,第2行引入了一些不太理想的模糊性,如果我们考虑到像第2行这样的语句需要构造的真正高级的东西,比如解析树,我们会遇到很大的麻烦 如果您愿意,可以阅读一些关于解析器的内容,这正是Java语言的指定方式。无论您认为该语言是否能够或应该支持错误的语法,它都不支持。并非所有Java语言之父提出的东西都有100%的意义。例如,我甚至想不出为什么这些规则会使解析

我的问题是,为什么会这样?我的意思是,第2行和第3行的区别在哪里?

这就是java或C的工作方式,伙计,我真的不能对此抱怨。。如果我们谈到编程语言语义,第2行引入了一些不太理想的模糊性,如果我们考虑到像第2行这样的语句需要构造的真正高级的东西,比如解析树,我们会遇到很大的麻烦


如果您愿意,可以阅读一些关于解析器的内容

,这正是Java语言的指定方式。无论您认为该语言是否能够或应该支持错误的语法,它都不支持。并非所有Java语言之父提出的东西都有100%的意义。例如,我甚至想不出为什么这些规则会使解析更容易。这是java还是C?请不要在问题上加上两种语言的标签:A和c是不同的语言。只使用一种语言标记您的问题。@GhostCat我认为这是因为数组的协变性:由于您可以将
字符串[]
分配给
对象[]
,因此您不必根据分配的RHS上的元素和LHS上的元素类型推断要创建的数组的元素类型。但这是针对引用类型的;看起来你可以用原语。
int[] arr = {1, 2, 3};

arr = {1, 2, 3} //Error
arr = new int[] {1, 2, 3}; //No Error