Re: empty interfaces via reflection
Aryeh M. Friedman wrote:
the
following test code (using findClass not loadClass as the override
method) still doesn't work:
public static void main(String[] args)
throws Throwable
{
while(true) {
ClassLoader loader=new MyClassLoader();
I did get the following to work. It uses a URLClassLoader, as Daniel
Pitts suggested. Your MyClassLoader didn't seem to be doing anything
extra, so you may as well use the existing class - though I don't see
why yours wouldn't work.
You give the directory containing the class to be tested as the first
argument, and it is turned into a URL for the class loader. Make sure
this directory is not in your classpath.
import java.io.*;
import java.net.*;
public class Test {
public static void main(String[] args) throws Throwable {
File f = new File(args[0]);
URL[] path = new URL[] { f.toURI().toURL() };
while (true) {
ClassLoader loader = new URLClassLoader(path);
Class klass = loader.loadClass("SomeClass");
Object o = klass.newInstance();
System.out.println(o.getClass().getDeclaredMethod("getAck").
invoke(o));
System.in.read();
}
}
}
--
ss at comp dot lancs dot ac dot uk |