getConstructor with no parameters

The problem is clear when you read the javadoc of .getConstructor():

Returns a Constructor object that reflects the specified public constructor of the class represented by this Class object.

Emphasis mine.

In your code, the constructor is not public!

Example:

// Note: class is NOT public -- its default constructor won't be either
final class Test
{
    public static void main(final String... args)
        throws NoSuchMethodException
    {
        // throws NoSuchMethodException
        Test.class.getConstructor();
    }
}

Obligatory link to an SO answer which also gives the JLS reference. In particular, note that the default constructor has the same access modifier as the class.

Leave a Comment