Reputation: 641
I got an arraylist made containing two letters and one number. I need to display it like for example "ab1". But everytime I get a printline with some arraylist code: "pp4main.Letter@f7e6a96pp4"
This is my array list: ArrayList<Letter> letterlijst = new ArrayList<Letter>();
My code trying to display:
public Kofferslot(char letter1, char letter2, int cijfer){
Letter letterlijst1 = new Letter();
letterlijst1.setLetter(letter1);
Letter letterlijst2 = new Letter();
letterlijst1.setLetter(letter2);
letterlijst.add(letterlijst1);
letterlijst.add(letterlijst2);
Cijfer cijfer3 = new Cijfer();
cijfer3.setCijfer(cijfer);
String letterstring1 = letterlijst.get(0).toString();
String letterstring2 = letterlijst.get(1).toString();
System.out.println(letterstring1 + letterstring2 + cijfer3);
}
Upvotes: 2
Views: 151
Reputation: 124
you have to either override the toString() to print the letter or instead of using :
letterlijst.get(0)
use something like this :
letterlijst.get(0).getLetter() // return letter1 of setLetter(letter1)
Upvotes: 1
Reputation: 46428
override toString()
in your Letter class, By default Object's toString() will be invoked
@override
public String toString() {
return ""+ch1+ch2+number
}
Where ch1, ch2 are the char attributes in your Letter class and number is an int attribute
Upvotes: 1
Reputation: 68887
You have to override your toString()
method of the Letter
and Cijfer
class.
Something like this:
@Override
public String toString()
{
return String.valueOf(mijnLetter);
}
But a nicer approach would be to a getter (getLetter()
), instead of the toString.
Upvotes: 1