小编Jas*_*n V的帖子

为什么是“new String();” 一个声明但是“new int[0];” 不是?

我只是随机尝试查看是否new String();可以编译并且它确实可以编译(因为根据 Oracle 的 Java 文档“表达式、语句和块”,有效的语句类型之一是“对象创建”),

但是,new int[0];给了我一个“不是声明”的错误。

这有什么问题?我不是在创建一个数组对象new int[0]吗?

编辑:

为了澄清这个问题,以下代码:

class Test {
    void foo() {
        new int[0];
        new String();
    }
}
Run Code Online (Sandbox Code Playgroud)

在 上导致编译器错误new int[0];,而new String();其本身没有问题。为什么一个不可接受而另一个很好?

java syntax

5
推荐指数
1
解决办法
88
查看次数

标签 统计

java ×1

syntax ×1