Permalänk

Java - skriv ut en arrayList

Hej

Hur gör jag för att skriva ut en arrayList

Nedan följer del av vad jag har i tre olika klasser.
Klasser: MainLibraryProgram, Library och Reader (finns fler men endast dessa ska vara berörda nu).

MAINLIBRARYPROGRAM

private void makeLoan(){ int mediaID = readInt("Media ID: "); MediaItem mediaItem = library.searchMediaItem(mediaID); int readerID = readInt("Reader ID "); Reader reader = library.searchReader(readerID); Date date1 = new Date(); Date date2 = new Date(date1.getYear()+1, 12, 1); LoanStatus loanStatus = mediaItem.getLoanStatus(); loanStatus.makeLoan(date1, date2, reader); System.out.println("Loand made"); } private void printLoanCollection() { System.out.println("----------------------"); for (LoanStatus a : library.getLoans()) { System.out.println(a.toString()); } }

LIBRARY

private Reader reader = new Reader(null, 0, 0, null, null, null); public Reader searchReader(int readerID) { return readerCollection.searchReader(readerID); } public List<LoanStatus> getLoans() { return reader.getLoans(); }

READER

private List<LoanStatus> loans = new ArrayList<LoanStatus>(); public void makeLoan(LoanStatus loan){ loans.add(loan); } public List<LoanStatus> getLoans() { return new ArrayList(loans); }

Det jag vill göra är i MainLibraryProgram
där jag vill skriva ut innehållet i listan.
Men jag förstår inte hur.... (markerat i bold)

Delar gärna med mig av mer om det behövs...
Målet nu är bara att printa ut arraylistan loans

edit:

import java.util.Date; public class LoanStatus { private MediaItem mediaItem; private Date startDate; private Date endDate; private Reader reader; public LoanStatus(MediaItem mediaItem){ this.mediaItem = mediaItem; } public void makeLoan(Date startDate, Date endDate, Reader reader){ this.startDate = startDate; this.endDate = endDate; this.reader = reader; reader.makeLoan(this); } public boolean checkLoan(){ return reader != null; } }

Permalänk
Medlem

Ser rätt ut det där, vad får du för utskrifter?
Kan vara att toString inte är overridad och då ärver den metoden från objectklassen och ger ofta en utskrift som "LoanStatus@515134".

Fixen där vore att i din LoanStatus klass lägga till

@Override
public String toString()
{
//det du vill skriva ut här.
}

Permalänk

jag får inget som utskrift alls....
sen är jag tveksam till raden
private Reader reader = new Reader(null, 0, 0, null, null, null);

och jag har ju inte definierat en toString i klassen där arrayListan ligger.

när jag försöker skriva ut något får jag bara tomt.

Permalänk
Medlem

Anropar du printLoanCollection() metoden någonstansifrån vi inte ser? För jag ser inget anrop.
Släng in den efter
loanStatus.makeLoan(date1, date2, reader);
System.out.println("Loans made");
där så ska du se