【发布时间】:2012-11-23 12:56:22
【问题描述】:
对于 Java,有没有办法创建一个自定义类,可以像数组一样在其上使用 [] 访问器?
普通数组
int[] foo = int[5];
foo[4] = 5;
print(foo[4]);
//Output: "5"
自定义类
class Bar {
//Custom class that uses index as a ref
}
Bar foo = new Bar(5);
foo.set(4, 5);
print(foo[4]);
//Output: "5"
【问题讨论】:
-
我希望...如果可以覆盖
[],我们就不会被丑陋的list.get(5)和str.charAt(6)所困?.. -
不,我经常听到有关运算符重载将在 Java 的后续版本中出现的传言,但老实说,我认为不会。
-
作为旁注,看看 groovy :)
-
@JonTaylor 老实说,我认为 Java 已经错过了运算符重载的总线。
-
我的印象一直是Java故意不希望运算符重载成为可能......我认为这是有道理的。 (我听说它可能被用于集合类型,但没有别的,我可以接受。)
标签: java arrays class accessor