令牌解析错误..在Beanshell中遇到了\'..

时间:2012-06-27 23:10:08

标签: java beanshell

我正在尝试运行以下Beanshell代码 -

assignee.toString()!=''

此处'assignee'是Beanshell上下文中的变量。

但是我收到以下错误 -

Caused by: Sourced file: inline evaluation of: ``assignee.toString()!='';'' Token Parsing Error: Lexical error at line 1, column 23.  Encountered: "\'" (39), after : "\'": <at unknown location>

at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at org.webharvest.runtime.scripting.BeanShellScriptEngine.eval(BeanShellScriptEngine.java:104)

我在这里做错了什么?我想检查变量'assignee'是否具有空值...实现此目的的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

直接与null比较:

if(assignee.toString() != null)
{
   do.something();
}

答案 1 :(得分:0)

问题是'c'是一个字符文字,但''(“无字符”的字符文字?)是无效的Java语法。 (即使它进行了解析,String == char也会出现类型错误。)

或许""(一个空字符串)文字意味着什么呢?

重要提示:即使没有语法错误,通常也不应将字符串与==(或!=)进行比较因为结果可能是意料之外的。关于为什么以及如何在Java中正确比较String对象,有关于SO的大量问题:例如请参阅String.equals(..)String.isEmpty()

快乐的编码!