扩展 java ArrayList
我想扩展ArrayList,为一个特定类添加一些方法,该类的实例将由扩展的ArrayList持有。下面是一个简化的说明性代码示例。
这对我来说似乎很合理,但我对Java很陌生,我看到其他问题阻碍了RayList的扩展,例如扩展ArrayList和创建新方法。我对Java的了解还不够多,无法理解反对意见。
在我之前的尝试中,我最终在ThingContainer中创建了许多方法,这些方法本质上是对ArrayList的传递,因此扩展似乎更容易。
有没有更好的方法来做我想做的事情?如果是,应如何实施?
import java.util.*;
class Thing {
public String name;
public int amt;
public Thing(String name, int amt) {
this.name = name;
this.amt = amt;
}
public String toString() {
return String.format("%s: %d", name, amt);
}
public int getAmt() {
return amt;
}
}
class ThingContainer extends ArrayList<Thing> {
public void report() {
for(int i=0; i < size(); i++) {
System.out.println(get(i));
}
}
public int total() {
int tot = 0;
for(int i=0; i < size(); i++) {
tot += ((Thing)get(i)).getAmt();
}
return tot;
}
}
public class Tester {
public static void main(String[] args) {
ThingContainer blue = new ThingContainer();
Thing a = new Thing("A", 2);
Thing b = new Thing("B", 4);
blue.add(a);
blue.add(b);
blue.report();
System.out.println(blue.total());
for (Thing tc: blue) {
System.out.println(tc);
}
}
}