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;
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ść?
@GotoFinal: to że mamy jdk8 (a w sumie już praktycznie 9) więc powinniśmy używać konwencji z jdk8 ( ͡°͜ʖ͡°) plus to że foreach nie jest odporny na NPE ( ͡°͜ʖ͡°)
@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.
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;
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ść?
code
bo tego się czytać nie da ( ͡° ʖ̯ ͡°) wklej po prostu obie klasy i opis zadania będzie lepiejstream 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.
https://gist.github.com/enseitankad0/db836c31126a2f233c10f067a8b71ac6