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