使用反射从超类中的子类中查找方法
我正在开发一个与 KryoNet RMI 一起使用的反射系统,以允许我进行不可靠的对象调用。但是,这依赖于使用注释将各种方法标记为“@Unreliable
”。
如果我将方法的映射存储到描述注释的“信息”,那么这里的问题是,子类中的方法与其超类中的方法不匹配,因此无法找到 Method
。由于方法的复杂性,需要所有可用的信息来区分方法,但我不需要其树中的类型信息——只需要纯方法数据、名称、参数和返回类型。
是否有任何 API 可用于创建更灵活的 Method
对象(可能在外部库中),还是我必须自己编写代码?
干杯,
克里斯
I'm working on a reflection system for use with KryoNet RMI to allow me to do unreliable object calls. However, this relies on using an annotation to mark various methods as being '@Unreliable
'.
The problem here if I store a map of Methods to their 'infos' describing the annotations and such, a method in a subclass does not match one in its superclass, so the Method
cannot be located. Due to the complexity of methods, all the information available is needed to differentiate a method, but I don't require the type info in its tree -- just the pure method data, name, arguments and return type.
Is there any API available to create a more flexible Method
object (maybe in an external lib) or do I have to code it myself?
Cheers,
Chris
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通过迭代子类并使用方法的名称和参数类型手动定位方法来“修复”这个问题,将它们也添加到同一个映射中(映射将方法存储到方法信息,因此我使用相同的方法信息实例多个方法键)。
I 'fixed' this issue by iterating over subclasses and locating the method manually using the name and parameter types of the method to add them also to the same map (the map stores method to method info, so I use the same method info instance for multiple method keys).