Wpis z mikrobloga

#java #javapomoc <-- obserwuj tag jak możesz

Mam klasę: Main,
MobilePhone extends Main (tu mam ArrayList)
Contacts extends Mobilephone.(tu mam konstruktor Contacts(String name, String phoneNumber) {

1. Tworzę arraya w Mainie

MobilePhone contactListMeizu = new MobilePhone();
2. Tworzę metodę addContacts;

public static void addNewContact() {


System.out.println("Add contact name");
String contactName = scanner.nextLine();

System.out.print("Enter contact number");
String contactNumber = scanner.nextLine();
Contacts contact = new Contacts(contactName, contactNumber);

contactListMeizu.addContact(contact);

w klasie MobilePhone jest tylko:

public void addContact(Contacts contact){

contactList.add(contact);
}

3. Tworzę metodę print contacts;

public void printContactList(){

System.out.println("Contact Book is storing: "+ contactList.size()+"positions");

for(int i=0; i < contactList.size(); i++) {
System.out.println((i + 1)+". " + contactList.get(i).name + " "+ contactList.get(i).phoneNumber);
}

I wszystko działa tak jak chcę. Problem w tym że zadanie ma wytyczne:

// Be sure not to expose the inner workings of the Arraylist to MobilePhone
// e.g. no ints, no .get(i) etc <--- a ja użyłem get(i) w princie. PYTANIE: Jak to obejść?
  • 8
@powaznyczlowiek: no to bardzo idiotyczny powód, jak w javie 7 dodali MethodHandles to powinniśmy przestać pisac normalny kod i wszystko oprzeć na method handles? a moze na invoke dynamic?
stream też nie jest odporny na NPE i trzeba wtedy sobie dorobić dodatkowe warunki, tak samo jak w pętli. Z tym że jeśli w tej liście są nulle, to problem jest znacznie wcześniej.