如果您对故事不感兴趣,请跳过前 2 段。
我正在和一位朋友谈论数组,以及如果您尝试访问像 Objective C(这是我的主要语言)这样的“现代”语言中越界的对象,为什么它们(仍然)会崩溃。所以我们进行了一场辩论,我说我可以给他写一个数组(我将它命名为 GeniusArray),如果你尝试访问越界但不会崩溃,它会返回 null 并打印出错误。
睡过之后我意识到,如果您正在访问超出范围的元素,您的代码中会出现一些严重的错误,并且应用程序崩溃可能还不错,因此您不得不修复它。:-D
但仍然:我想证明我的观点并将一个 Array 子类化并重写 get() 方法,方法是基本上添加每个程序员相对经常编写的这个 if 语句:
// Pseudo code...
if (index < array.count) element= array[index];
我想用Java而不是Objective C来做,因为这是我朋友“知道”的(顺便说一句,我们都是学生)。
长话短说:我尝试将 Array 子类化,但它似乎不起作用。我明白了:
访问限制:由于所需库的限制,无法访问类型 Attribute.Array:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar GeniusArray.java