我有一个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.

09-26 20:22
查看更多