Вот пример программы, протестированной в Java 1.5.
Интересно, почему два подхода ниже имеют разные результаты. Это ошибка или своего рода Java-функция?
package test;
public class TestOut {
public static void main(String[] args) {
// works
new TestIn();
// throws IllegalAccessException
Class.forName("test.TestOut$TestIn").newInstance();
}
private static class TestIn {
}
}