0

配列リストを反復処理するために使用しているforループがあり、必要なオブジェクトが見つかったら、このオブジェクトのsetメソッドで以前に取得したオブジェクトを設定し、「notfound」のフラグをfalseに設定します。次に、ループから抜け出します。その後、not foundフラグがまだtrueの場合は例外をスローします。それ以外の場合は、メソッドの最後に到達します。

ブレークまたはforループを誤用していると思います。常に例外がスローされます。

'items'はLibraryItemsの配列リストであることに注意してください。

        for(LibraryItem l : items) {
        if(l.equals(item)) {
            l.setCheckedOut(patronToRetrieve);
            itemNotFound = false;
            break;
        } else {
            itemNotFound = true;
        }
    }
        if (itemNotFound = true) {
            throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
        } else {

        }
4

1 に答える 1

6

私が見ることができた1つの問題は次のとおりです。

if (itemNotFound = true) {
            throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
        } 

in if句trueを割り当てtrueているため、上記のステートメントは常に結果になります。itemNotFound

する必要があります:

if (itemNotFound) {
            throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
        } 

(また)

 if (itemNotFound == true) {
                throw new CheckInOutException("The item " + item.getTitle() + " does not exist in the catalogue. Sorry, " + patronToRetrieve.getName() + ", you will not be able to check this out at this time.");
            } 

==同等性チェックで=あり、割り当てです。

于 2012-12-17T05:10:40.367 に答える