我正在開發一個Minecraft mod,允許使用Lua創建Mod。我希望用戶能夠使用他們想要的接口創建TileEntities。目前,我正在使用調用註冊Lua文件功能的Base TE,但這不允許他們製作庫存和外圍設備。有沒有辦法在Java中動態實現接口?
0
A
回答
5
是的。您可以通過ClassLoader.html#loadClass(...)加載界面和使用Proxy#newProxyInstance(...)
示例實現:
ClassLoader cl = getClass().getClassLoader();
Class<?> desiredInterface = cl.loadClass("SomeInterface");
Object proxy = Proxy.newProxyInstance(
cl,
new Class<?>[]{desiredInterface},
new InvocationHandler() {
@Override
Object invoke(Object proxy, Method method, Object[] args) {
//call Lua with method name and args, return answer
}
});
+0
有沒有辦法讓返回的對象擴展另一個類? – Rule 2013-03-16 13:34:28
+0
嗯,是的,但AFAIK不是沒有字節碼操作。看看http://cglib.sourceforge.net/,http://asm.ow2.org/,http://www.csg.is.titech.ac.jp/~chiba/javassist/,http: //commons.apache.org/proper/commons-bcel//index.html。 – 2013-03-18 09:17:59
相關問題
- 1. 有沒有辦法在Ruby中強制實現接口方法?
- 2. 有沒有辦法確保實現接口的類實現靜態方法?
- 3. Java:沒有接口實現?
- 4. 有什麼辦法讓現有類型實現一個接口?
- 5. WCF接口沒有實現
- 6. Java中的ArrayList沒有實現Collection接口的方法?
- 7. 有沒有辦法從現有的類創建接口?
- 8. 有沒有在intellij中實現接口方法的捷徑?
- 9. Qt插件:有沒有辦法列出插件實現的所有接口?
- 10. 在沒有創建實現的情況下實現接口(動態代理?)
- 11. 動態加載Java接口的實現
- 12. 有沒有辦法在表之間動態連接?
- 13. 有沒有辦法讓@ModelAttribute動態?
- 14. 有沒有辦法在VBA中連接?
- 15. 在Scala中實現Java接口方法
- 16. 實現接口在Java中
- 17. 在java中實現接口
- 18. 有沒有辦法在GDI +中實現圖層?
- 19. 有沒有辦法在iOS 5中實現可縮放的UIPageViewController?
- 20. 有沒有辦法在C#中實現「void func(out params object [] parameters)」#
- 21. 有沒有辦法在Qt4中實現OnReady()回調?
- 22. 有沒有辦法在Pymunk中實現靜摩擦
- 23. 有沒有辦法在Firebase中實現ForEach?
- 24. 有沒有辦法在HTML中實現6點按鈕?
- 25. 有沒有辦法在C#中實現平面文本框?
- 26. 有沒有辦法實現兩個tableview的並行滾動?
- 27. 有沒有辦法通過IdentityServer實現動態客戶端註冊?
- 28. 在java中,有沒有辦法檢查Windows服務的狀態?
- 29. 沒有實現所有的接口方法。可能嗎?
- 30. 沒有public accessor的ActionScript3接口實現?
這不是完全清楚你在找什麼。這可能是反射[代理](http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Proxy.html)會解決你的問題? – onon15 2013-03-16 11:34:23