3

我正在尝试运行以下 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'是否具有空值......完成此操作的正确方法是什么?

4

2 回答 2

1

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

也许""(一个空的字符串)文字是用来代替的?

重要说明:即使这没有语法错误,通常也不应该将字符串与==(or !=) 进行比较,因为结果可能出乎意料。关于 SO 有很多关于为什么以及如何正确比较 Java 中的 String 对象的问题: 例如见String.equals(..)String.isEmpty()

快乐编码!

于 2012-06-27T23:17:08.137 回答
0

直接与 null 比较:

if(assignee.toString() != null)
{
   do.something();
}
于 2012-06-27T23:14:47.510 回答