`
莫生气
  • 浏览: 861892 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Enumeration的错误用法

    博客分类:
  • Java
阅读更多
在debug一段含有Enumeration对象的代码时候,为了看到Enumeration对象内的值,在原有循环外另外增加了一个循环来输出,结果增加后发现代码有异常出现。

经过调试发现,使用enu.nextElement依次输出值之后,enu。hasMoreElements变为了false,导致了正常的代码没有执行。

总结:错误的把Enumeration的循环当成了和List类似的循环,进行了两次循环导致的异常。
以后得注意


public static int find(String addrType, Reference ref) throws Exception {
		Enumeration enu = ref.getAll();
		
		System.out.println("enu.hasMoreElements()=="+enu.hasMoreElements());
		[color=red]for (int i = 0; enu.hasMoreElements(); i++) {
			RefAddr addr = (RefAddr) enu.nextElement();
			System.out.println(addr.getType()+" ,length=="+addr.getType().length()+",====="+addr.getContent());
		}[/color]
		
		System.out.println("enu.hasMoreElements()=="+enu.hasMoreElements());
		for (int i = 0; enu.hasMoreElements(); i++) {
			RefAddr addr = (RefAddr) enu.nextElement();
			System.out.println(addr.getType()+" ,length=="+addr.getType().length()+",====="+addr.getContent());
		
			if (addr.getType().compareTo(addrType) == 0) {	

				return i;
			}
		}
	
	}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics