1
A
回答
1
我'假設你指的是返回一個方法的接口?
簡答:是的。
爲什麼?
這是一篇很好的文章。
Why we return type Mostly Interface rather than Class?
摘錄:
的好處是,返回一個 接口使它可以改變 後來實施。例如,你可能 一個,而你最好 更願意使用一個LinkedList一個ArrayList,而不是 後決定.....
1
我不認爲你可以聲明一個方法內部的接口。你爲什麼想要? 您只能定義一個匿名內部類。
+1
嵌套接口是隱式靜態的,不能在方法體中定義。 – 2009-12-24 07:28:40
0
你可以這樣做,一個衆所周知的例子是Comparator<T>
接口。
例如:
List<Person> persons = personDAO.list();
Collections.sort(persons, new Comparator<Person>() {
// Anonymous inner class which implements Comparator interface.
public int compare(Person one, Person other) {
return one.getName().compareTo(other.getName());
}
});
有些人可能認爲反對這個並告訴它,而所屬的Person
類,這樣你就不需要任何需要的時候一次又一次地實現它。例如。
public class Person {
// ...
public static final Comparator<Person> ORDER_BY_NAME = new Comparator<Person>() {
public int compare(Person one, Person other) {
return one.getName().compareTo(other.getName());
}
};
}
可以如下使用:
Collections.sort(persons, Person.ORDER_BY_NAME);
1
號你爲什麼不只是寫一個,編譯,並看到自己?
假設一個接口可以在一個方法內部聲明,它將不能在外部訪問。很難想象這種界面的有用性限制在一個塊中。另一方面,本地類可以是有用的,因爲它包含具體的實現。
相關問題
- 1. 我可以在C#中的子接口中覆蓋父接口方法嗎?
- 2. 我可以註冊NSNotifications類嗎?我可以在NSNotifications中使用類方法嗎?
- 3. 我們可以在c#中使用接口實現多態嗎?
- 4. PHP:我可以在接口中使用字段嗎?
- 5. 我可以在C#中使用子類實現接口嗎?
- 6. 我可以使用私人方法嗎?
- 7. 我可以將泛型方法限制爲多個接口嗎?
- 8. 我們可以使用Dispose方法而不實現IDisposable接口嗎?
- 9. 可以省略C#中抽象類中的接口方法嗎?
- 10. 我們可以在Kotlin中使用infix通用方法嗎?
- 11. 我可以在Android的getView()方法中調用setContentView()方法嗎?
- 12. 可以將擴展方法應用於接口嗎?
- 13. 我可以在VB.NET中使用Structure的擴展方法嗎?
- 14. 我可以在@Bean方法中使用@Autowired變量嗎?
- 15. 我可以在Owin中使用兩種認證方法嗎?
- 16. 我可以在PHP中使用兩種構造方法嗎?
- 17. 我可以在Entity Framework SubQuery中使用擴展方法嗎?
- 18. 我可以在觀察者中使用控制器方法嗎?
- 19. 我可以在application_helper.rb中使用其他助手方法嗎?
- 20. 我可以在擴展方法中使用泛型T嗎?
- 21. 我可以在Python Bottle中使用PUT http方法嗎?
- 22. 我可以在一個類的方法中使用multiprocessing.Pool嗎?
- 23. 我可以發現JMX接口嗎?
- 24. 我可以創建一種類型接口的通用方法嗎?
- 25. 我可以從wsdl調用方法嗎?
- 26. 在接口中使用通用方法
- 27. 在DLL接口中使用boost :: shared ptr可以嗎?
- 28. 使用v8cgi/mysql,我可以連接到非默認端口嗎?
- 29. 我可以使用WCF接口作爲MVVM模型嗎?
- 30. 我可以直接使用MySQL服務端口和Node js嗎?
在閱讀fastcodejava的文章後,我想我誤解了OP。你的意思是在一個方法內的內部/匿名接口? – 2009-12-24 07:26:45
請舉例說明你的意思。 – 2009-12-24 10:43:08