我有这个方法:
public Route getSubroute(int startOffset, int endOffset) {
if (!(0 <= startOffset && startOffset < endOffset && endOffset <= this.getLength())) {
throw new IllegalArgumentException("Subroute is out of bounds.");
}
// the sub-segments that will make up the sub-route
List<Segment> subsegments = new ArrayList<>();
// variable offset is the distance along the route to the start of the
// segment currently being examined
int offset = 0;
for (Segment segment : segments) {
if (startOffset - offset < segment.getLength() && 0 < endOffset - offset) {
// part of the segment belongs on the sub-route
int subsegmentStartOffset = segment.getStartOffset() + Math.max(startOffset - offset, 0);
int subsegmentLength = (Math.min(endOffset - offset, segment.getLength()) - Math.max(startOffset - offset, 0));
subsegments.add(new Segment(segment.getSection(), segment.getDepartingEndPoint(), subsegmentStartOffset, subsegmentStartOffset + subsegmentLength));
}
offset += segment.getLength();
}
return new Route(subsegments);
}
我试图在另一个类中调用此方法。我知道我必须做一个例子,但我不知道我做错了什么。在我开始收到错误之前,我已经到了这里:
public Route subRouteV(int startOffset, int endOffset){
Route newRoute = new Route();
Route vSubR = Route.getSubroute(startOffset, endOffset);
}
答案 0 :(得分:4)
您必须在您创建的对象(getSubroute
)上调用newRoute
,而不是在类上:
Route vSubR = newRoute.getSubroute(startOffset, endOffset);