public class Box {
private Object object;
public void set(Object object) { this.object = object; }
public Object get() { return object; }
}
公式のJavaチュートリアルのドキュメントと上記のスニペットからこのテキストを参照して、ランタイムエラーを再現しようとしました。ランタイムエラーが発生していないので、私のコードで何が問題になっていますか?Javaチュートリアルのドキュメントに記載されているように、このスニペットで実行時エラーが発生しないのはなぜですか?
このメソッドはObjectを受け入れるか返すので、プリミティブ型のいずれでもない場合は、任意のものを自由に渡すことができます。クラスの使用方法をコンパイル時に検証する方法はありません。コードの一部がIntegerをボックス内に配置し、整数を取得することが予想されますが、コードの別の部分が誤ってStringを渡して実行時エラーが発生する可能性があります。
私が書いたコード。
public class Box {
private Object obj;
public void set(Object obj) {
this.obj = obj;
}
public Object get() {
return obj;
}
public static void main(String [] args) {
Box g = new Box();
System.out.println(g.get());
g.set("hello again");
System.out.println(g.get());
}
}