如何使用非静态的公共方法?

时间:2016-05-21 11:33:07

标签: java methods instance public

我有这个方法:

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);
}

1 个答案:

答案 0 :(得分:4)

您必须在您创建的对象(getSubroute)上调用newRoute,而不是在类上:

Route vSubR = newRoute.getSubroute(startOffset, endOffset);
相关问题