Forums Register Login

Calling a reflection class method.

+Pie Number of slices to send: Send
Hi!

I am trying to call a reflection class method:



But I am getting an error for line 4. It says "cannot find symbol" for myObject. I think line 3 is wrong. It should not be Object.

Please give me some pointers. Thanks
+Pie Number of slices to send: Send
myclass should be title case. e.g. MyClass. Check Java Coding Conventions
Line 4 - You're trying to get a method defined in MyClass using myObject.
but At line 3 - The datatype of myObject is Object instead of MyClass.
+Pie Number of slices to send: Send
Why are you casting that returnedobject to Object? I presume Object means java.lang.Object. You should keep the reference as ??MyClass??.
+Pie Number of slices to send: Send
Errrr....so line 4 should read:



?
1
+Pie Number of slices to send: Send
 

Alan Blass wrote:Errrr....so line 4 should read:



?



No. If you could reference com.mycom.MyClass you wouldn't be using reflection, would you? You would just create the object normally. The problem is the instance (myObject) doesn't hold references to the Methods, the class does. So you need to get a reference to the Class object. You try that using myObject.class but that won't work, because Object does not have a publicly accessible member called class. You could get the class Object using myObject.getClass() because Object does have an accessible getClass() method. But you don't need to: you already have the Class object Class c.

So use:

And if the method is not a static method then line 5 will fail. You need to pass it two things (based on the method signature): 1: the instance myObject, on which the method will be executed and 2: a String parameter.
+Pie Number of slices to send: Send
Ok, so it is like this:

+Pie Number of slices to send: Send
Yes, assuming the method signatures are all correct. Just as a note: Life becomes a lot easier with Reflection when you can cast the Object to a known type. So you may not know about the specific com.whatever.MyClass, but if MyClass implements com.somethingcommon.Worker and you know about the Worker interface you can do:
I hired a bunch of ninjas. The fridge is empty, but I can't find them to tell them the mission.
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 919 times.
Similar Threads
pass reference variable in method
Problem Using toString method from a different class
JComboBox Selection?
What is this() method
CODE/IDE LEVEL VARIABLE, aka Variable before compilation
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 19:51:02.