Я выполняю задание, в котором я могу добавить только определенные классы в общий ArrayList, но ArrayList, похоже, не добавляет классы, как предполагалось.
public class ComputerOrder<T extends Product> extends GenericOrder<T> {
private List<T> products;//the list of items
public void addProduct(T t) {
if (t.getClass().isInstance(ComputerPart.class)) {
products.add(t);
}
if (t.getClass().isInstance(Service.class)) {
products.add(t);
}
if (t.getClass().isInstance(Peripheral.class)) {
products.add(t);
}
else System.out.println("Not the right type of object.");
}
Тест основных аргументов:
public static void main(String[] args) {
ComputerPart c;
c = new ComputerPart(12);
ComputerOrder<Product> g3 = new ComputerOrder<>();
g3.addProduct(c);
g3.print();
}
Ожидаемый результат - ArrayList g3 сможет добавить c, поскольку это экземпляр объекта ComputerPart, новместо этого ArrayList пуст.Может ли кто-нибудь объяснить, что я делаю не так с моим кодом?
Примечание: этот оператор "else" присутствует только в целях тестирования и, похоже, указывает на то, что оператор if работает неправильно, так как он продолжает получатьсрабатывает при тестировании.