[英]Define an array object in java
我找到了一个对我有用的类声明,但是我想知道是否可以将此类写得更“简短”:
public class Data implements Comparable <Data>{
public Data (int category, String quality, String title ) {
super();
this.category = category;
this.quality = quality;
this.title = title;
}
int category;
String quality;
String title;
@Override
public int compareTo(Data d) {
return this.getDuration_value() - (d.getDuration_value());
}
}
为什么我经常要提“类别,质量标题”? 为什么是“ super()”? 我想短一点。 我找到了其他解释,但是没有这种“复杂结构”。
这些行给出了“数据”,我希望不必事先声明数组的长度:
Data[] myDataArray = {
new Data(0, // category "0"
"***", // quality
"MyTitle1") // title
new Data(0, // same category "0"
"**", // quality
"MyTitle2") // title
}
super()
调用父类的构造函数 。 如果跳过此步骤,Java将自动调用默认构造函数(不带参数),因此您可以在示例中跳过此行。
数组的长度应提前声明。 如果这是一个问题,则应改用ArrayList之类的容器。 ArrayList
将在需要时自动调整大小。
至于多次提到这些字段,Java只是很冗长。
您提供的示例实现了Comparable
,只有在您想要比较数据对象时(例如,使用比较器将“ Obj A”大于“ Obj B”时才需要)。 您不需要构造函数。 它仅存在以确保元素被初始化。 否则,您可能最终会遇到NullPointerExceptions并且无法进行比较。
这个例子很“安全”,可以防止某些问题。
如果只需要一个“列表”,则可以使用ArrayList<Data>
或其他List
选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.