2013-05-14 76 views
0

這可能是一個非常愚蠢的問題,所以請原諒我。但今天早上,我遇到了一些我完全不熟悉的Java語法。語法如下:Java - 索引接口?

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

很顯然,我已經改變了接口的名稱,以及該方法,否則此代碼示例是不變的。

我很困惑這個語法,因爲它似乎索引接口/類(甚至不是對象)?!另外,使用new關鍵字來實例化一個接口?!

我真的試圖谷歌這個,爲了找到答案。但是,由於它是我不熟悉的語法,除了使用代碼行本身作爲搜索術語外,我只是在猜測使用什麼術語。不幸的是,我沒有找到任何解釋這種語法的東西。因此,我希望Stack Overflow上的某個人能夠幫助我理解這一點。

回答

2

它只是創建一個空數組。沒有正在創建接口的實例。這相當於:

return new MyInterface[] { }; 

或者:

MyInterface[] array = {}; 
return array; 

具體來說,它是一個ArrayCreationExpression,在section 15.10 of the JLS看到。

+0

謝謝。我不知道我怎麼沒有意識到這一點= /。我陷入了索引的想法。 – greydamian 2013-05-14 10:14:43

1

該函數返回一個空數組,用於存放MyInterface類型的對象。

它與您使用String []返回字符串數組類似。

+0

哦,當然。它根本不是索引,而是聲明一個數組。現在我覺得真的很愚蠢= /。謝謝您的回答。 – greydamian 2013-05-14 10:04:25

0

它只是返回MyInterface的空數組(大小爲0)。無論數組是哪種類型,數組都是一個數組。它也可以是原始數據類型,類或接口。