java - java中定义一个数组对象

标签 java arrays class

我找到了一个适合我的类声明,但我想知道这个类是否可以写得更“短”:

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() invokes the parent class constructor 。如果您跳过此行,Java 将自动调用默认构造函数(不带参数),因此您可以在示例中跳过此行。

数组的长度需要提前声明。如果这是一个问题,您应该使用诸如 ArrayList 之类的容器。反而。 ArrayList 将在需要时自动调整大小。

至于多次提及字段,Java 就是这么冗长。

关于java - java中定义一个数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27012815/

相关文章:

python - 类中角色的pygame运动不起作用

java - 重写 toString 方法?

具有数组和指针的 C++ 矩阵

java - UML三元关联实现java代码

javascript - 状态在调用 setState 之前得到更新

regex - 如何拆分并保存到数组

c++ - 删除通过取消引用新对象初始化的对象

java - Hadoop2.2 的 Mahout 错误

java - HibernatePersistenceProvider : Unsupported major. 次要版本 52.0 intellij

java - JSlider 绘制不完整,与 Netbeans 配合使用