Używanie metody na tablicy

0
package main;

public class SimpleLookup implements Lookup {

public static String[] Names = new String [20];
private int n;

@Override
public void add(String name){
        if(Names.length == n){
            doubleSize();
        } else
           Names[n++] = name;   
}
private void doubleSize() {
        String [] ng = new String[2 * n];
        System.arraycopy(Names, 0, ng, 0, n);//przekopiowuje tablice
        Names = ng;
    }

@Override
public String remove(String name){
     for (int i = 0; i < n; i++) {
            if (Names[i].equals(name)) {
                String cp = Names[i];
                Names[i] = Names[--n];
                return cp;
            }
        }
        return null;
    }


public static void main(String[] args) {
    Names[0] = "Janek";
    Names[1] = "John";
    String x = "Japek";
    Names.add("Grzegorz"); // <---------------------------tutaj pokazuje mi błąd, "Cannot find symbol", nie rozumiem dlaczego
    
    }
}
 /*Tak wygląda mój interface*/
public interface Lookup {
  
    void add(String name);//dodaje imie do tablicy
    Object remove (String name); //usuwa imie z tablicy
}

Bardzo proszę o pomoc, googlowałem już ten błąd i nie rozumiem czemu metoda nie działa mi na zwykłej tablicy. Jest to zabronione?

Przygode z Javą zacząłem niedawno.

0

Pole Names jest typu Object[] i nie ma nic wspólnego z Twoim interfejsem Lookup.

0

Jak rozumiem powinienem zmienić metodę "public void" na "public Object", żeby prowadzić operacje na obiekcie?

0

Nie, wywołujesz add na tablicy, a tam takiej metody nie ma. Zamiast Names.add("Grzegorz") utwórz obiekt typu SimpleLookup i wykonaj na nim add("Grzegorz"), to powinno się skompilować... choć w Twoim kodzie ogólnie jest trochę więcej problemów ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1