【初心者】Java質問・相談スレッド87【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0019デフォルトの名無しさん
2006/07/01(土) 17:11:25public static void main(String[] args) throws Exception {
new top().method();
}
public void method() throws Exception {
//1
top.inner obj = (top.inner)top.inner.class.newInstance();
//2
//top.inner obj = new top.inner();
obj.method();
}
private static class inner {
public void method() {
System.out.println("inner method");
}
}
}
このコードをコンパイルすると正常に通るのですが、
実行させると、下記の例外が発生しました。
java.lang.IllegalAccessException: Class top can not access a member of class top$inner with modifiers "private"
でも、上のコードで//1をコメントにして、//2の方(通常のnewを使うほう)
を有効にして実行すると正常に実行されました。
引数なしコンストラクタを持ってたら、
new するのも newInstanceするのも同じと思ってたんですが、
実は全然違うものなのですが?
■ このスレッドは過去ログ倉庫に格納されています