在《2024 Clojure状态调查》中分享您的想法!点此访问调查

欢迎!请查看关于页面,以了解该功能的更多信息。

0 投票
java.jmx

java.jmx中存在大量可以通过添加合适的类型提示来消除的反射。

4 答案

0 投票

评论者:jafingerhut

2012年10月28日的jmx-9-eliminate-reflection-v1.txt消除了java.jmx中大部分的反射警告。

我建议您在应用之前仔细检查类型提示,以防我对其中一些类型提示弄错了。我对javax.management库的使用不熟悉。我只是在Java库文档中查看了很多方法的签名。

特别是,我不确定“connection”应该是javax.management.MBeanServer还是MBeanServerConnection。对于大多数代码,MBeanServerConnection已经足够好,但在register-mbean中调用.registerMBean方法时,需要使用MBeanServer来避免反射。也许它应该在所有地方都是MBeanServer?我的主要问题是,这样做是否会过度限制代码的通用性。

0 投票

评论者:nickmbailey

事实上,不一定需要在所有地方都使用MBeanServer。当使用with-connection宏时,“connection”是RemoteMBeanServerConnection,“registerMBean”不是一个已定义的方法。

我认为我们可以将register-mbean修改为始终获取本地JMX服务器,而不是使用“connection”绑定。您不能用远程JMX服务器注册MBean。

0 投票

评论者:stu

抱歉,我只在完成一个类似(且较差)的更改后看到了这篇。0.3.3 Maven 发布版本消除了反射警告并推迟了对更改注册-mbean的处理。(后者更改在我看来似乎没问题,但我在尝试一次只做一件事)。

如果有任何问题,请告知。

0 投票
参考:[https://clojure.atlassian.net/browse/JMX-9](https://clojure.atlassian.net/browse/JMX-9)(jafingerhut报告)
...