ストーリーに興味がない場合は、最初の2段落をスキップしてください。
私は友人と配列について話していました。ObjectiveC(これが私の主な言語です)のような「現代」の言語で範囲外のオブジェクトにアクセスしようとすると、配列が(まだ)クラッシュする理由について話していました。そこで私たちは議論に巻き込まれ、範囲外の何かにアクセスしようとしてもクラッシュしない場合にnullを返し、エラーを出力する配列(私はGeniusArrayと名付けました)を彼に書くことができると言いました。
その上で眠った後、範囲外の要素にアクセスしている場合、コードに重大なエラーがあり、アプリがクラッシュするのは悪くないので、修正を余儀なくされることに気付きました。:-D
しかし、それでも:私は自分の主張を証明し、配列をサブクラス化し、基本的にすべてのプログラマーが比較的頻繁に書くifステートメントを追加することでget()メソッドをオーバーライドしたいと思います。
// Pseudo code...
if (index < array.count) element= array[index];
私の友人が「知っている」ので、Objective CではなくJavaでそれをやりたいと思っています(ところで、私たちは両方とも学生です)。
簡単に言うと、配列をサブクラス化しようとしましたが、機能しないようです。私はこれを取得しています:
アクセス制限:必要なライブラリの制限により、タイプAttribute.Arrayにアクセスできません:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar GeniusArray.java