繁体   English   中英

在Java中定义数组对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM