我想要一個文本字段並運行用戶輸入的任何內容。因此,如果用戶輸入 aPackage.AClass.aMethod(parms)
,它將在包,類和這些參數中運行該方法。這可能嗎? 我想這樣做的原因是,我可以調試我的代碼,並將程序放入「開發人員模式」並能夠執行任何命令。用戶輸入的Java運行方法
0
A
回答
0
如果你知道類名,方法名,輸入參數類型,然後使用反射,這可以實現。這裏有一個相同的小代碼片段:
//load the AppTest at runtime
Class cls = Class.forName("aPackage.AClass");
Object obj = cls.newInstance();
//call the printIt method
Method method = cls.getDeclaredMethod("aMethod", noparams);
method.invoke(obj, null);
0
是的,這是可能的。使用Java Reflection API(tutorial on docs.oracle.com),您可以按名稱訪問類及其方法。如果您不知道參數的類型,則可能出現問題是重載方法。並且請注意,讓用戶執行隨機代碼是一個潛在的安全問題。
相關問題
- 1. 方法運行時不需要用戶輸入
- 2. 確定從Java中的用戶輸入調用的方法
- 3. 在等待輸入時運行方法
- 4. 運行時輸入objSell.exec方法在VBScript
- 5. 來自用戶輸入的Java對象名稱方法調用
- 6. 用用戶輸入運行crontab
- 7. Java用戶輸入?
- 8. 爲什麼在使用ant運行java時無法獲得用戶輸入?
- 9. 評估用戶輸入的Rails方法
- 10. 要求用戶輸入的類方法
- 11. Java - 提示用戶輸入文件的方法
- 12. Java - 從用戶獲得特定輸入的高效方法
- 13. 的Java如何尋找SQL從用戶輸入方法
- 14. 作爲組合用戶輸入的Java方法重載
- 15. Java:無效輸入(循環?)後在程序中重新運行用戶輸入
- 16. 輸入/輸出的Java方法
- 17. 運行Minitest時防止用戶輸入
- 18. 運行時用戶輸入分析
- 19. Java程序在請求用戶輸入後停止運行
- 20. 在使用BufferedReader方法獲取用戶輸入時使用Java消除新行
- 21. Java用戶輸入不打印換行
- 22. Bash用戶輸入來運行多次用戶輸入的腳本
- 23. 用戶使用方法輸入的數組填充方法
- 24. 在Java中輸入用戶輸入
- 25. Java方法沒有運行
- 26. java - JProgressBar方法運行時
- 27. 用戶在運行時動態輸入多個輸入
- 28. 重載方法用戶輸入
- 29. 用戶輸入重載方法(ReadLine())
- 30. 方法不會拿起用戶輸入
通常,讓用戶訪問代碼是一種不好的做法。將文本解析爲字符串數組,然後使用if語句(或標記器)讀取參數並運行命令。 – Aarowaim
是的,但並不是很平凡。可能有些圖書館可以提供幫助,但是如果不是的話,你可以解析它並使用反射API。無論如何,您可能會發現這種方式更合乎需要,因爲您可以將某些軟件包/方法/等列入黑名單,從而導致用戶造成惡作劇。 –
已添加此問題的原因 –