返回Java中迭代器接口的实例?
因此,我一直在使用以下代码:返回Java中迭代器接口的实例?,java,object,interface,instance,Java,Object,Interface,Instance,因此,我一直在使用以下代码: HashSet group = new HashSet(); Iterator iter = group.iterator(); 现在,有人能给我解释一下这是如何编译的吗 我认为不能用Java实例化接口。既然迭代器是一个接口,那么上面的第二行代码是如何工作的,在这里创建了一个对象名为iter(类型为Iterator)的iter,工作正常吗 谢谢各位 我认为不能用Java实例化接口 你是100%正确的,你不能那样做。但是,您可以实例化实现上述接口的类,这正是grou
HashSet group = new HashSet();
Iterator iter = group.iterator();
现在,有人能给我解释一下这是如何编译的吗
我认为不能用Java实例化接口。既然迭代器是一个接口,那么上面的第二行代码是如何工作的,在这里创建了一个对象名为iter(类型为Iterator)的iter,工作正常吗
谢谢各位
我认为不能用Java实例化接口
你是100%正确的,你不能那样做。但是,您可以实例化实现上述接口的类,这正是group.iterator()
方法所做的
HashSet
类定义了一个实现迭代器的内部类。此类的对象知道它们迭代的HashSet
对象,还提供了Iterator
接口强制的方法。这种做法在Java中很常见:它允许您将实现隐藏在接口后面,迫使库程序的用户访问接口。结果变得更易于维护,因为对接口编程会减少耦合
我认为不能用Java实例化接口
你是100%正确的,你不能那样做。但是,您可以实例化实现上述接口的类,这正是group.iterator()
方法所做的
HashSet
类定义了一个实现迭代器的内部类。此类的对象知道它们迭代的HashSet
对象,还提供了Iterator
接口强制的方法。这种做法在Java中很常见:它允许您将实现隐藏在接口后面,迫使库程序的用户访问接口。结果变得更易于维护,因为对接口编程会减少耦合。赋值运算符=
与实例化不同。请查看HashSet#iterator()
的源代码。这里没有实例化任何内容。赋值运算符=
与实例化不同。看看HashSet#iterator()
的源代码。这里没有实例化任何内容。