我从对象列表中的对象中获取一个字符串值。
transitionName = transitionList.get(m).getTransitionName().toString();
来自EJB查询检索的对象的另一个字符串值。
changeItem = changeItemFacade.getChangeItem(changeGroupList.get(1));
char tempNewString[] = changeItem.getNewstring();
newString=new String(tempNewString);
现在这个Char []到String的比较是因为包含changeItem的Oracle表已将coloumn NewString定义为CLOB。 并且ejb实体将变量'NewString'的类型定义为Char []数组。 所以我必须在进行比较之前将其转换为字符串。
问题是这个if语句总是返回false并且不会被执行。
if(transitionName.equalsIgnoreCase(newString)){}
当我尝试记录值(Logger.Debug)时,它在服务器实例日志中完美地显示了两个(相等的)字符串值。
我转换char []数组的方式有问题吗?
我尝试将实体类变量的类型更改为String(当然还有getter和setter方法),但也不起作用。
答案 0 :(得分:1)
在比较之前尝试对字符串进行trim()。另外,查找字符编码差异。 - 奇点