Я пробовал несколько часов, чтобы исправить мою проблему, но у меня больше нет идей. Моя задача состоит в том, чтобы выполнить несколько классов, я уже все это ожидал.Generics Abstract Extends Error
Разрешено изменять первую строку кода. Моя проблема - это класс AutoDialer.
Autodialer
public class AutoDialer<T> extends AbstractConnection implements Callable {
private Node<T> anchor;
/*
* insert an element at the first position
*/
public void insert(T element) {
anchor = new Node<T>(element, anchor);
}
/*
* call call() method on all elements contained in the list
*/
public void callAll() {
Node<T> iterator = anchor;
while (iterator != null) {
iterator.getValue().call();
iterator = iterator.getNext();
}
}
}
Тест
public class Test
private static void test1() {
AutoDialer<Person> dialer = new AutoDialer<Person>();
dialer.insert(new Person("Mrs. X"));
dialer.insert(new Person("Mr. Y"));
dialer.callAll();
}
private static void test2() {
AutoDialer<AbstractConnection> dialer = new AutoDialer<AbstractConnection>();
dialer.insert(new Mail(new Person("Mrs. X")));
dialer.insert(new Phone(new Person("Mr. Y")));
dialer.callAll();
}
public static void main(String[] args) {
test1();
test2();
}
}
AbstractConnection
public abstract class AbstractConnection {
public final String type;
private Person person;
protected AbstractConnection(String type, Person person) {
this.type = type;
this.person = person;
}
public Person getPerson() {
return person;
}
protected abstract void connect();
/*
* establish a connection (implemented in subclass) and then call the person
*/
public void call() {
connect();
getPerson().call();
}
}
Bro I, не знаю, как использовать строки кода здесь – Nado
Расширяет ли 'AutoDialer'' AbstractConnection' или 'T'? Как в настоящее время написано, это первый, поэтому я не думаю, что 'iterator.getValue(). Call()' должен работать –
Не имеет для меня никакого смысла, что 'AbstractConnection' имеет в качестве атрибута' Person'. –