在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;
}
}
}
分享到:
相关推荐
相比之下,`Enumeration`接口并不具备这样的机制,所以在多线程环境下,如果使用`Enumeration`遍历集合并在同一时间修改集合,可能不会立即检测到并发修改,可能导致不确定的行为或数据错误。 4. **历史与版本** ...
解决方法是简化表达式结构,或者检查是否有逻辑上的错误。 #### Register allocation failure (寄存器分配失败) 在编译过程中,如果编译器无法为函数中的局部变量分配足够的寄存器资源,则会触发此错误。这通常...
5. **错误处理**:在枚举过程中,可能会遇到无效的端口、设备未响应等问题,因此需要适当的错误处理机制,如On Error语句,以确保程序的稳定运行。 压缩包中的"Mod_Serial_Port_Enumeration.bas"文件很可能包含了...
47. **In-line assembly not allowed**:不允许使用内联汇编,检查编译器设置或使用方法。 48. **Incompatible storage class**:存储类别不兼容,如静态和自动变量的混合使用。 49. **Incompatible type ...
37. **Enumeration constants syntax error (枚举常量语法错误)** - **解释**:当枚举常量的定义不符合语法规范时,会出现此错误。 - **解决方法**:检查枚举常量的定义是否符合语法规范。 38. **Error ...
Enumeration constant syntax error (枚举常量语法错误) 当定义枚举常量时语法不正确时,会报此错误。例如,枚举常量名称包含非法字符。解决方法是检查枚举常量的语法是否正确。 #### 32. Error directive: xxx ...
#### Enumeration constant syntax error(枚举常数语法错误) 在枚举类型中,如果常数定义的语法不正确,会出现此错误。例如,使用了非法字符。解决方法是检查枚举常数的定义。 #### Error directive: xxx(错误的...
**解决方法**:减小数组大小,或考虑使用动态分配内存的方法。 ### 8. Assembler statement too long 错误信息:“汇编语句过长” **解释**:汇编语句超过了C语言编译器支持的最大长度(通常为480个字符)。 **...
Enumeration constant syntax error (枚举常量语法错误) 枚举常量的定义语法不正确时会发生此错误。 **解决方法:** - 检查枚举常量的语法。 - 确保每个枚举值都是合法的。 #### 39. Error Directive: xxx (错误...
#### Enumeration constant syntax error (枚举常量语法错误) **错误说明**:枚举常量的语法有误。 **解决方法**:检查枚举常量的语法是否正确。 #### Error directive: xxx (错误指令: xxx) **错误说明**:...
解决方法包括指定完整的命名空间路径或使用别名来区分不同的同名标识符。 #### Argument list syntax error (参数表语法错误) 当函数调用中的参数列表不符合语法规范时,会出现此错误。检查是否有缺失的逗号、括号...
#### 三、错误信息及处理方法 接下来,我们将按照字母顺序列举部分具体的错误信息,并给出可能的原因和解决方案。 1. **Bad call of in-line function (非法调用内联函数)** - 原因:尝试调用未正确声明为内联的...
任何不符合这一规则的用法都将导致语法错误。 #### 16. Code has no effect (代码无效) 当一段代码执行后没有任何实际效果时,编译器可能会给出此警告。虽然这不是一个错误,但通常意味着代码可能存在逻辑问题或...
本文将详细介绍Turbo C编译器(以下简称TC)中的常见错误类型及其对应的含义与解决方法。 #### 错误类型 TC编译器通常会报告三种类型的错误信息:致命错误、一般错误和警告。每种类型的错误对程序的影响不同,理解...
### C语言错误提示详解 #### Ambiguous operators need parentheses (不...理解这些错误提示的原因及其解决方法对于编写健壮的 C 代码至关重要。希望这份详尽的指南能够帮助你在遇到这些问题时快速定位并解决问题。
枚举常量语法错误 (Enumeration constant syntax error) - **翻译**:枚举常量语法错误。 - **解释**:枚举常量的声明不符合 C 语言的语法规则。 - **解决方案**:检查枚举常量声明的语法,确保符合 C 语言的规范...
**描述**: 当表达式中的操作符具有多重含义时,编译器无法确定其具体用法,这时需要使用括号来明确优先级。 **解决方法**: 在涉及多义性操作符的地方添加括号,以明确运算顺序。 #### Ambiguous symbol ''xxx'' ...
以上错误信息涵盖了Turbo C编程中常见的编译错误,理解这些错误的原因及其解决方法对于编程实践至关重要。在遇到这些错误时,程序员应该仔细检查代码,确保遵循语言规范和最佳实践,从而避免常见的编程陷阱。
#### 三十一、枚举常数语法错误 (Enumeration constant syntax error) 在定义枚举常量时出现了语法错误。确保所有枚举常量的定义都符合语法规范。 #### 三十二、错误的编译预处理命令 (Error directive :xxx) ...