2011-08-20 30 views
1

在諸如Java和c#的語言中,當聲明接口時,函數上的參數具有變量名稱。你可以把更多的最小和有語法的工作是這樣的:常規接口語法:使用變量名稱

void Print(String); 

而是當前

void Print(String str); 

其他然後可讀性,這裏的變量幫助確定哪些參數應該是,是有理由需要接口上的變量名稱?

可讀性例如:

void doSomething(long, long); 

void doSomething(long id, long timeLimitMilli); 
+0

我認爲你的分析是專注的,它只是關於可讀性。在普通的舊C頭文件中,名稱被忽略,並且可能與稍後出現的實現不同,事實上可以省略,就像您在doSomething中顯示的一樣。 –

回答

0

根據我的測試,我會說答案是 「一點也不」:

./a/Foo.java

public interface Foo { 
    void run(int x); 
} 

./b/Foo.java

public interface Foo { 
    void run(int y); 
} 

然後

$ sha1sum ./a/Foo.class 
7ae75c91f553e09e5a06d5630134e63d650d734e ./a/Foo.class 
$ sha1sum ./b/Foo.class 
7ae75c91f553e09e5a06d5630134e63d650d734e ./b/Foo.class 

即Java的關心這麼少,廢棄它們完全依靠編譯參數名稱。對於所有意圖和目的,他們都是評論。

+0

有道理,但那麼爲什麼我們不得不在接口上使用變量名,如果這些變量名不被保留的話。 – VolatileDream

+0

那麼你可以Javadoc'@ param'他們我猜。 – Owen

+0

@jex - 你自己回答 - 可讀性,即使沒有Javadoc。另外,這些變量名稱在執行接口的生成代碼中自動使用。 –