Абстрактный метод с переменным списком аргументов
Я не совсем нашел элегантный способ решить эту проблему. У меня есть абстрактный класс, который наследуется несколькими другими классами с помощью абстрактного метода, который может содержать от нуля до 4-5 аргументов различных типов.
public abstract class Item {
public abstract void use();
}
Например, у меня есть класс Book, который наследует это и не принимает аргументов при переопределении use (), у меня есть класс Key, который наследует и принимает String и Queue в качестве аргументов при переопределении и т. Д ...
Я пытался использовать дженерики, но мне нужно ввести используемое число, например Item, когда оно на самом деле зависит от класса.
public abstract class Item<T,U> {
public abstract void use(T arg1, U arg2); //Number of arguments/types could be more or less
}
Я попытался отправить список переменных объектов, но типы объектов всегда являются переменными, и я не уверен относительно синтаксиса для получения в наследующих классах.
public abstract class Item<T> {
public abstract void use(T... arguments);
}
public class Book extends Item<?> {
public void use(?);
}
public class Book extends Item<String, Queue> { //Wrong number of arguments since I can't use Item<T...>
public void use(String str, Queue q); //fails
}
Возможно, я просто делаю что-то не так - может кто-нибудь предложить какую-нибудь помощь или понимание?