嗯,我知道這是一個愚蠢的問題,但讓我們思考一下。爲什麼沒有用於Java的Repl模式
爲什麼我們不能擁有repl模式或種類的Java shell。假設我只想執行Math.max(2,3)
來獲得輸出3.它可以類似於Scala repl模式,默認情況下處理類和主要聲明(它擴展到App
),並且只評估一個表達式。
技術上:
- 沒有在後面跟着跑可以執行一個解釋 - 如果Scala和Groovy的就可以了,那麼這意味着JVM是不是主要的問題
- 如果javac的就是這個道理,說我們刪除所有的優化,並且它直接將行逐行轉換爲java字節碼,那麼應該有一條出路。類型推理可能不是很強大,可以顯示大量信息,但至少可以顯示方法的輸出。可能
javac
可能會針對這種情況進行一些修改 - 例如:在調試器中,我們將斷點連接到該行,然後向前執行。類似的策略可以應用
這將是很酷的每個JVM進程,在對運行,一臺可以上網或設置一些說靜態變量,並有實時信息,默認外殼程序。
這一切本來以爲過,但爲什麼沒有它被大多數人所接受(也有一些開源實現,雖然)
它被接受爲JSR-274 http://www.javarepl.com/或控制檯版本,但我不知道爲什麼還沒有它尚未納入 – Jatin
的東西,接受不一定納入的Java SE或EE或我。 JSR只是標準化事物的一種方式。在這種情況下,它不是Java SE的一部分的原因是絕大多數Java應用程序不需要這種類型的東西。你會爲每一個未來的Java JRE安裝程序添加一個兆字節(大部分)無用的東西......永久存在, –