Абстрактный метод с переменным списком аргументов

Я не совсем нашел элегантный способ решить эту проблему. У меня есть абстрактный класс, который наследуется несколькими другими классами с помощью абстрактного метода, который может содержать от нуля до 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
}

Возможно, я просто делаю что-то не так - может кто-нибудь предложить какую-нибудь помощь или понимание?

Ответы на вопрос(5)

Ваш ответ на вопрос