2011-07-18 42 views
0

所以我張貼了這個問題 Putting a simple expression language into java 並有一個偉大的回答有關使用的ScriptEngine允許用戶編寫的JavaScript,我沒有和它似乎工作無法如果使用從Java內部聲明的JavaScript

解析完整的JavaScript不過,雖然像

(artist.length>0 ? artist + '-' :'') + (album.length>0 ? album + '-' :'') 

作品表達式中使用一個完整的if語句不

if(artist.length>0) {artist + ':-'} + (album.length>0 ? album + '-' :'') 

你可能會問爲什麼我這樣做,以及我希望我可以使用一個if:else if:else語句,這是一個朝着這一步

+0

'java!= javascript' ... – Neal

+0

@neal:OP詢問使用JSR-223從Java運行的JS代碼。有時候,這種背景很重要,因此OP提到了它。 –

回答

4

這只是無效的JavaScript。

<cond> ? <iftrue> : <iffalse> 

是if-else的'expression'形式,並返回可以使用的值。

if { 

} else { 

} 

是「語句」版本,用於執行代碼,並且不返回值。

+0

謝謝你已經在這裏暴露了我的javascript無知,所以有可能對我做相當於if else else if表達式 –

+0

你可以嵌套表達式,就像一個? b:(c?d:e),它翻譯爲: 如果a,那麼b,否則如果c,那麼d,否則e – shelman

+0

感謝你的工作,即(albumartist.length> 0?albumartist:(artist.length> 0 ? 藝術家 : ' ')) –