Is it possible to invoke the no modifier method in a superclass through Java reflection?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
if you have a bigger hierarchy, you can use:
(the above examples are for a method named
doSomething
with no arguments. If your method has arguments, you have to add their types as arguments to thegetDeclaredMethod(...)
method)Yes. You may need to call setAccessible(true) on the Method object before you invoke it.
After reading the original question -- I realize I assumed you were trying to call an overridden method. Which is what I was trying to do and how I came to find this thread. Calling a base class non-overridden method should work as others here have described. However, if you are trying to call an overridden method, my answer stands as below:
I don't think calling an overridden method is possible, per
http://blogs.oracle.com/sundararajan/entry/calling_overriden_superclass_method_on
Most notably:
Method.invoke
If the underlying method is an instance method, it is invoked using dynamic method lookup as documented in The Java Language Specification, Second Edition, section 15.12.4.4; in particular, overriding based on the runtime type of the target object will occur.