Greetings,

I have a really strange error as follows.  I have two files:

*Test3.java:*

import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyCodeSource;
import org.codehaus.groovy.tools.GroovyClass;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;

public class Test3 {

public static void main(String[] args) throws IOException,
NoSuchMethodException
{
GroovyClassLoader groovyLoader = new GroovyClassLoader(GroovyClass.class
.getClassLoader());
Class<?> groovyClass = groovyLoader.parseClass(new GroovyCodeSource(new
File("src/Test4.groovy")), false);
Class<?> [] argTypes = new Class[1];
argTypes[0] = Object.class;
Method f1 = groovyClass.getMethod("fun1", argTypes);
Method f2 = groovyClass.getMethod("main", argTypes);
int x = 1;
}

}

*Test4.groovy:*

class Test4 {

static void fun1(Object x) {
println "Hello from fun1"
}


static void main(Object x) {
println "Hello from main"
}

}

Getting "f1" always works. However, getting "f2" throws an exception!
Interestingly, if I rename "main" or pass a different argument type, it
works.
The only time it doesn't work is if the method name is "main" and it has a
single Object argument.

Does anyone know why this is?

Thanks!

Blake McBride

Reply via email to