0

这可能是一个非常愚蠢的问题,所以请原谅我。但是今天早上,我遇到了一段我完全不熟悉的 Java 语法。语法如下:

public MyInterface[] getThings() {
    return new MyInterface[0];
}

显然,我已经更改了接口和方法的名称,但除此之外,此代码示例保持不变。

我对这种语法感到困惑,因为它似乎在索引一个接口/类(甚至不是一个对象)?!还有,使用new关键字,来实例化一个接口?!

我真的试图用谷歌搜索这个,以找到答案。但由于我不熟悉它的语法,除了将代码行本身用作搜索词之外,我一直在猜测要使用什么术语。不幸的是,我找不到任何可以为我解释这种语法的东西。因此,我希望 Stack Overflow 上的某个人可能会帮助我理解这一点。

4

3 回答 3

2

它只是创建一个空数组。没有创建接口的实例。它相当于:

return new MyInterface[] { };

或者:

MyInterface[] array = {};
return array;

具体来说,它是一个ArrayCreationExpression,如JLS 的第 15.10 节所示。

于 2013-05-14T09:59:18.467 回答
1

该函数返回一个空数组,该数组应该包含 MyInterface 类型的对象。

这类似于使用 String[] 返回字符串数组。

于 2013-05-14T10:00:14.000 回答
0

它只返回一个空的 MyInterface 数组(大小为 0)。一个数组就是一个数组,不管它是什么类型的。它也可以是原始数据类型、类或接口。

于 2013-05-14T10:02:29.023 回答