newInstanceメソッド(形式1)

説明

パラメタtypeの表すクラスのインスタンスをこのオブジェクトが表すExplicitメモリブロックに直接生成します。パラメタで指定したクラスのインスタンスだけをExplicitメモリブロックに生成します。パラメタで指定したクラスのインスタンスのコンストラクタなどによる初期化で生成されるオブジェクトについては,Javaヒープに生成します。typeをこのオブジェクトとした場合のClass.newInstance()と類似していますが,一部異なります。

形式

public Object newInstance(Class type);

パラメタ

type:
直接生成する配列インスタンスのクラスです。

例外

NullPointerException:
パラメタtype,またはパラメタtypeが表すクラスがnullです。
SecurityException:
SecurityManagerがあり,かつ次のうちどれかに当てはまる場合にスローされます。
  • s.checkMemberAccess(type, Member.PUBLIC)の呼び出しがこのコンストラクタへのアクセスを許可しない。
  • 呼び出し側のクラスローダが異なる。
  • 現在のクラスローダの上位クラスローダとs.checkPackageAccess()の呼び出しがこのクラスのパッケージへのアクセスを許可しない。
NoSuchMethodException:
パラメタtypeまたはパラメタtypeが表すクラスに,publicのパラメタなしコンストラクタがありません。
ExceptionInInitializerError:
パラメタtypeまたはパラメタtypeが表すクラスの初期化に失敗しました。
InstantiationException:
パラメタtypeまたはパラメタtypeが表すクラスが抽象クラスまたはインタフェースです。
InvocationTargetException:
パラメタtypeまたはパラメタtypeが表すクラスのコンストラクタの実行で例外が発生しました。
IllegalAccessException:
クラスまたはそのnullaryコンストラクタにアクセスできません。
InaccessibleMemoryAreaException:
サポートされていない機能です。

戻り値

このオブジェクトが表すExplicitメモリブロックに生成されたインスタンスへの参照を返却します。

共通エラーチェックで処理できないと判定された場合は,パラメタtypeをレシーバとしてClass.newInstance()のメソッドを呼び出し,その結果を返却します。共通エラーチェックについては,「13.6 Explicitメモリブロックを制御する処理のエラーチェック(共通エラーチェック)」を参照してください。

注意事項

パラメタtypeには,publicクラスを与えることを推奨します。