我正在尝试运行以下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'是否具有空值...实现此目的的正确方法是什么?
答案 0 :(得分:0)
直接与null比较:
if(assignee.toString() != null)
{
do.something();
}
答案 1 :(得分:0)
问题是'c'
是一个字符文字,但''
(“无字符”的字符文字?)是无效的Java语法。 (即使它进行了解析,String == char
也会出现类型错误。)
或许""
(一个空字符串)文字意味着什么呢?
重要提示:即使没有语法错误,通常也不应将字符串与==
(或!=
)进行比较因为结果可能是意料之外的。关于为什么以及如何在Java中正确比较String对象,有关于SO的大量问题:例如请参阅String.equals(..)
和String.isEmpty()
。
快乐的编码!