When will reflections support casting (especially for constructors, etc) properly?
- From: brian.vanheesch@xxxxxxxxx
- Date: 31 Jan 2006 04:03:25 -0800
Consider the following code:
class A
{
}
class B extends A
{
}
class C
{
public void foobar(A a)
{
}
}
....
Object b=Class.forName("B").newInstance();
Class clazzA=Class.forName("A");
Class clazzC=Class.forName("C");
Object c=clazz.newInstance();
Method m=clazzC.getMethod("foobar", clazzA);
m.invoke(c, b);
This will result in an exception, since b is not of type A (the extend
is not considered). Anyway around this? Clearly typecasting will do,
but can't figure out how to typecast using reflection if you only have
the class string "A" as a reference of the target typecast class.
Also the private/public/protected modifier for the method (doSomething,
in this example) MUST be public (even if reflection code lives within
the class C), any around this?
PS sorry about the cheezy class names, my client does not allow
specific example code to be posted to the web.
bvh
.
- Follow-Ups:
- Prev by Date: Re: How to byte[ ] --> char[ ] and char[ ] --> byte[ ]?
- Next by Date: Re: What IDE for Java do you use?
- Previous by thread: Various Interest Rates
- Next by thread: Re: When will reflections support casting (especially for constructors, etc) properly?
- Index(es):
Relevant Pages
|