Как объявить положенный метод Hash Table? - PullRequest
0 голосов
/ 03 ноября 2019

Я не знаю, как решить эту ошибку при объявлении метода put ...

private Hashtable<Acronimo, Acronimo> lista;

public Dicionario() {
    lista = new Hashtable<Acronimo, Acronimo>();
}

//adiciona

public boolean juntaAcronimo(Acronimo aAcronimo) {
    if( lista != null) {
        return lista.put(aAcronimo.getChave(), aAcronimo);
    }
    return false;
}

Метод put (Acronimo, Acronimo) в типе Hashtable не применим для аргументов (Строка, Acronimo)

Ответы [ 2 ]

0 голосов
/ 03 ноября 2019

Метод aAcronimo.getChave() возвращает String, пока вы определили свою хеш-таблицу как <Acronimo, Acronimo>, поэтому все, что вам нужно сделать, это изменить это:

private Hashtable<String, Acronimo> lista;
0 голосов
/ 03 ноября 2019

Вы использовали неверный универсальный тип в объявлении поля lista, оно должно быть:

private Hashtable<String, Acronimo> lista;

Рассмотрите возможность использования HashMap вместоHashtable. Hashtable - это старый класс из ранней версии Java, и из-за обратной совместимости он без необходимости синхронизируется.

private Map<String, Acronimo> lista = new HashMap<>();
...