0

コンパイラ エラーが発生します。

Exercise.java:47: エラー: 互換性のない型 Time endTime = startTime.addMinutes(minutes);

                                       ^

必要: 見つかった時間: void 1 エラー

私が使用しようとしている方法は次のとおりです。

public void addMinutes(int mins) {
    this.mins += mins;
    if (this.mins >= 60) {  // check if over
        addHours(this.mins / 60);
        this.mins = this.mins % 60;
    }
    }

理由はわかりません。

  import java.util.*;
    import java.io.*;

    public class Exercise {

        private String exercise;
        private int minutes;
        private Time startTime;
        private Time endTime;
        private int addedminutes;



        public Exercise(String exercisetype, int m, Time start) {
        this.exercise = exercisetype;
        this.minutes = m;
        this.startTime = start;
        }


        public String getType() {
        return this.exercise;
        }


        public int getMinutes() {
        return this.minutes;
        }


        public Time getStart() {
        return this.startTime;
        } 


        public Time getEnd() {
        Time endTime = startTime.addMinutes(minutes);
        return endTime;
        }        



        public int addMinutes(int added) {
        addedminutes = this.minutes + added;
        return addedminutes;
        }


        public Time setStart(Time newstart) {
        this.startTime = newstart;
        return newstart;
        }


        public String toString() {

        String startStandard = startTime.getStandard();
        String endStandard = endTime.getStandard();

        String toReturn = (this.exercise + " for " + this.minutes + " minutes," + " from " + startStandard + " to " + endStandard);
        return toReturn;
        }

        public boolean equals(Exercise exTwo) { 
        return exercise == exTwo.exercise && minutes == exTwo.minutes && startTime == exTwo.startTime;
        }

        private static String exercisetype;
        public static String getTypes() {
        String types = ("Exercise types: " + Exercise.exercisetype);
        return types;
        }
}     
4

3 に答える 3

2

addMinutes値を返しません (void戻り型)。代わりに、呼び出された Time オブジェクトの状態を変更します。

または、次のように、完了後に時間を返すようにメソッドを変更します。

public Time addMinutes(int mins) {
    this.mins += mins;
    if (this.mins >= 60) {  // check if over
        addHours(this.mins / 60);
        this.mins = this.mins % 60;
    }
    return this;
}

または、使用方法を次のように変更します。

public Time getEnd() {
    Time endTime;
    startTime.addMinutes(minutes);
    //This seems wrong, by the way.  startTime will be modified by this call.
    endTime = startTime;
    return endTime;
}

または、より簡単に:

public Time getEnd() {
    startTime.addMinutes(minutes);
    return startTime;
}
于 2013-03-29T15:20:43.747 に答える
0

addMinutesTime( )のインスタンスを返さないvoidため、代入できませんendTime

于 2013-03-29T15:18:25.930 に答える
0

次の行があります。

Time endTime = startTime.addMinutes(minutes);

しかし、 addMinutes を宣言しました:

public void addMinutes(int mins)

これは何も返さないため、endTime に割り当てる戻り値はありません。

于 2013-03-29T15:19:19.317 に答える