具有变量参数列表的抽象方法
我还没有找到一种优雅的方法来解决这个问题。我有一个抽象类,其他几个类使用抽象方法继承,该抽象方法可以包含0到4-5个不同类型的参数。
public abstract class Item {
public abstract void use();
}
例如,我有一个继承这个的Book类,并且在重写 use() 时不带任何参数),我有一个 Key 类,它在重写时继承并采用字符串和队列作为参数,等等...
我尝试过使用泛型,但我必须输入使用的数字,例如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
}
我可能只是做错了什么 - 任何人都可以提供任何帮助或见解吗?