2

こんにちは、この Java コードでタイトルにエラーが表示されます

public static void age(Ship ob){
    DateTime myBirthDate = ob.getDate();
    DateTime now = new DateTime();
    Period period = new Period(myBirthDate, now);

    System.out.print("Ship age is " + ob.getName() + " е " );

    PeriodFormatter formatter = new PeriodFormatterBuilder()
        .appendYears().appendSuffix(" years") 
        .appendMonths().appendSuffix(" months") 
        .appendWeeks().appendSuffix(" weeks") 
        .appendDays().appendSuffix(" days")
        .appendHours().appendSuffix(" hours")
        .appendMinutes().appendSuffix(" mnutes")       
        .appendSeconds().appendSuffix(" seconds\n ")
        .printZeroNever().toFormatter();

    String elapsed = formatter.print(period);
    System.out.println(elapsed);
}

public static void compare(Ship ob, Ship ob2) throws ParseException {
    if(age(ob2) > age(ob)){ //<---- I get the Error here , when i try to comapre two objects
        System.out.println( "The ship,wich is more years is " + ob2);
    } else
        System.out.println( "The ship,wich is more years is " + ob);
}

手伝って頂けますか?このエラーを修正するために多くの方法を試しましたが、何も役に立ちませんでした。

4

3 に答える 3

0
int compareResult = ob.getDate().compareTo(ob2.getDate());
if (compareResult > 0) //ob2 date after ob date
    else if (compareResult < 0) //ob2 date before ob
        else //ob2 has same date as ob

OOP を練習したい場合、このような年齢の計算は適切ではありません。age メソッドを Ship クラスのメンバーにする必要があります。または、Ship クラスに、別の Ship を受け入れて日付/年齢比較の結果を返す比較メソッドを用意します。

于 2013-11-09T10:46:38.680 に答える