在Java中返回实例

时间:2011-11-13 17:46:15

标签: interface return instance

我们无法创建接口的实例。

但为什么Java API中的Arrays.asList(Object[] a)会返回ListList作为接口?)

谢谢!

2 个答案:

答案 0 :(得分:3)

它创建一个实现接口的的实例。

你不知道那门课是什么;它甚至可以每隔一个星期二使用一个不同的班级(它没有) 您只需通过界面使用该类。

答案 1 :(得分:2)

Java和OOO编程通常允许您定义应该如何使用对象(即对象的接口),因此只有库实现者需要担心事物实际工作方式的血腥细节。这就是为什么永远不会返回一个类本身而只是一个接口的好习惯,除了更好的可维护性之外,它还允许您在为应用程序编写测试时使用模拟或存根对象。

Java特别让您在飞行中创建一个接口实现。即你可以做类似

的事情
return new List() {

   boolean add() {...}
   void addAll {...}
   ... 
}

对于像List这样的复杂接口来说,这当然是一种过度杀伤,但实际上对于较小的接口非常方便。