2010-04-12 71 views
0

爲了讓用戶擴展我的應用程序,我正在使用rhino和Scripting for Java Platform。在JAVA中獲取javascript的所有變量

但是用戶可以寫一些情況下,如(ASTO.value>440) || (ASTO.bellowNormal)等等 的問題是,使用的ScriptEngine 從我的JAVA應用運行腳本之前,我想所有的變量的名字!因爲我應該知道腳本運行所需的變量... 我知道一個正則表達式可以完成這項工作,但我不知道... 請我有人可以幫我弄清楚java正則表達式來獲取變量我真的它並欣賞..

+0

聽起來像是你要實現的外星人屍體解剖反模式:http://forums.sun.com/thread.jspa?messageID=10337966#10337966 – 2010-04-12 16:09:59

+0

你爲什麼認爲這個正則表達式是唯一的解決方案?其他解決方案是否允許 – BalusC 2010-04-12 16:14:45

+0

ofcourse..all解決方案被接受 – GorillaApe 2010-04-12 16:36:55

回答

0

我找到了解決方案 cx.getDebuggableView(結果).getParamAndVarCount() 但它不返回未聲明的變量:(

0

雖然這是寫我們正在做一些非常相似在斯卡拉我只能給你一些提示......

  1. 個測試是
  2. 這是我們的更復雜的測試一個非常重要的:我有listArg[Math.floor(4/listArg[zeroArg]['f3'])]
  3. 變量描述設計...

    // chars after which there may be an environment variable used 
    private val NewScopeChars = List('[', '(', '/', '*', '+', '-', ',') 
    // chars that signal the end of a variable name 
    private val SepChars = '.' :: ' ' :: ';' :: ']' :: ')' :: NewScopeChars 
    private val ExcludeStrings = List("new", "Math") 
    private val LiteralPrefixes = "'" :: "\"" :: (0 to 9).map(_.toString).toList 
    

a problem with performance所以任何幫助將是讚賞。