java - 使用 0 到另一个 java 类中的多个对象初始化对象

标签 java oop aggregation

我有一个 Path 和一个 Segment 类。一条路径由多个段组成,并且段的数量可以变化。当初始化新路径时,我希望能够在路径对象中添加 0 个或多个段。这是我到目前为止所拥有的:

public class Segment {

  private final double distance;
  private final double duration;

  public Segment(double distance, double duration){
    this.distance = distance;
    this.duration = duration;
  }
}

public class Path {

  public ArrayList<Segment> segments;
  private Segment segment;

  public Path(Segment segment){ 
  // parameter should be able to take in 0-multiple segment-objects
    this.segment = segment;
    this.segments = new ArrayList<Segment>();
  }
}

主要方法示例:

public static void main(String[] args){
  Path path1 = new Path(segment1, segment2, segment3);
  Path path2 = new Path(segment4); 
}

最佳答案

您可以使用varargs :

import java.util.Arrays;
import java.util.List;

public class Path {
    private final List<Segment> segments;

    public Path(Segment... segs) {
        this.segments = Arrays.asList(segs);
    }
}

然后你可以调用它提供零个或多个段:

Segment seg1 = new Segment(2.0, 3.5);
Segment seg2 = new Segment(1.4, 4.2);

Path example1 = new Path();            // no segments
Path example2 = new Path(seg1);
Path example3 = new Path(seg1, seg2);  // etc.

关于java - 使用 0 到另一个 java 类中的多个对象初始化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894751/

相关文章:

java - 在 Tomcat 服务器 8.0 上部署基于 Java 的 Web 服务时出错

java - Spring Data JPA规范,如何在唯一的sql请求中获取@JoinColumn数据

java - Hadoop:作业显示在作业浏览器中,但无法通过 api 访问 JobStatus

C++:处理许多配置变量的设计建议

mongodb - 聚合组多个结果

scala - 在 spark 中遍历每一列并找到最大长度

java - GlassFish 服务器无法从 Eclipse 启动,卡在 69%

c# - 如何判断一个类是否实现了特定的接口(interface)

javascript - 如何从 JavaScript 中的子类调用父类的方法,以便可以访问父类的局部变量?

javascript - 一种使用 javascript 为事件提要聚合和分组项目的方法