【问题标题】:How to use public methods that are not static?如何使用非静态的公共方法?
【发布时间】:2016-09-18 15:27:09
【问题描述】:

我有这个方法:

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

【问题讨论】:

    标签: java methods instance public


    【解决方案1】:

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

    Route vSubR = newRoute.getSubroute(startOffset, endOffset);
    

    【讨论】:

      猜你喜欢
      • 2011-04-19
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 2011-05-04
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多