This Domain(Admin5.com) is for Sale:

理解java中接口

时间:2007-12-27  来源:不详  作者:林子


public static void main(String args[]) {
Properties props = System.getProperties();
Set keySet = props.keySet();
dumpIterator(keySet.iterator());

List list = Arrays.asList(args);
dumpIterator(list.iterator());
}

private static void dumpIterator(Iterator itor) {
// System.out.println(itor.getClass().getName());
while (itor.hasNext()) {
System.out.println(">> " itor.next());
}
System.out.println("----");
}
}

类Iterator的类型是unknown,这正是接口的绝妙之处,而不是问题。真正的事实是iterator方法返回的是一个真实的Iterator对象。然而,dumpIterator通常提供接口的完全实现。

假如你去掉dumpIterator中的println行的注释,你将发现真实的iterator类名,对Properties是Hashtable.Enumerator而List是AbstractList.Itr。这个事实不必知道,也不会对你的程序有任何帮助。真正重要的是List和Properties的iterator方法所返回的任何对象,必须实现java.util.Iterator:hasNext, next和remove方法。没有这三种方法中任何两种,dumpIterator方法将永远不能工作。

看完这篇,您有何感觉呢?

上一篇:JAVA代码编程规范   下一篇:java克隆详述

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息