3

次の Beanshell コードを実行しようとしています --

assignee.toString()!=''

ここで「担当者」は 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' に null 値があるかどうかを確認したい...これを達成する正しい方法は何ですか?

4

2 に答える 2

1

問題は'c'文字リテラルですが、''(「文字なし」の文字リテラル?) は無効な Java 構文です。(解析できたとしても、 で型エラーが発生しString == charます。)

おそらく""(空の文字列)リテラルが代わりに意図されていましたか?

重要な注意:これに構文エラーがない場合でも、結果が予期しないものになる可能性があるため、通常は文字列を==(または) と比較しないでください。Java で文字列オブジェクトを適切に比較する理由と方法について、SO には多くの質問があります。 : たとえば、 と を参照してください。!=String.equals(..)String.isEmpty()

ハッピーコーディング!

于 2012-06-27T23:17:08.137 に答える
0

null と直接比較します。

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