【发布时间】:2018-09-06 17:54:28
【问题描述】:
我需要创建一个匿名类对象的数组或集合。
例如我的构造函数的 toString 是:
public String toString() {
return String.format("%10s%12s%12d", getFirstName(), getLastName(), getAge());
}
我可以创建MyClass 对象的列表:
List<MyClass> list = new ArrayList<>();
但现在我需要用匿名类覆盖toString 方法
并使用新的toString 方法创建一个新集合:
MyClass myClass = new MyClass() {
public String toString() {
return String.format("%s%12s%12d", getFirstName(), getLastName(), getAge());
}
};
如何实现?
提前谢谢你。
【问题讨论】:
-
只需使用
List<User>。 -
您是否有理由为此需要使用匿名类?您将为每个元素创建一个新类(不仅仅是对象),这是一种相当笨拙的方法。你想做什么?你的
User在不同的时间有不同的显示方式吗? -
我同意@Kayaman。恕我直言,您发出的声音就像 OO 设计问题一样-即。您可能应该使用多个派生类,它们将以不同的方式实现 toString,但仍将基于相同的基类。
-
他没有为每个元素创建一个新的匿名类。他正在创建
MyClass的匿名子类的实例。回答问题:例如使用List<? extends MyClass>。 -
比如我需要改成toString方法
标签: java arrays list arraylist collections