Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我一直在使用以下代码:
HashSet group = new HashSet(); Iterator iter = group.iterator();
现在,有人可以向我解释一下这实际上是如何编译的吗?
我认为您不能在 Java 中实例化接口。所以看到 Iterator 是一个接口,那么上面的第二行代码如何创建一个名为 iter(类型为 Iterator)的对象,工作正常吗?
多谢你们
我认为您不能在 Java 中实例化接口。
你是 100% 正确的,你不能那样做。但是,您可以实例化实现上述接口的类,这正是该group.iterator()方法所做的。
group.iterator()
该类HashSet定义了一个实现Iterator. 此类的HashSet对象知道它们迭代的对象,并且还提供Iterator接口规定的方法。这种做法在 Java 中很常见:它允许您将实现隐藏在接口后面,迫使您的库程序的用户使用接口。结果变得更易于维护,因为对接口进行编程会降低耦合度。
HashSet
Iterator