小编kal*_*dev的帖子

带有变量参数列表的抽象方法

我还没有找到解决这个问题的优雅方法.我有一个抽象类,其他几个类继承了一个抽象方法,可以包含0到4-5个不同类型的参数.

public abstract class Item {
public abstract void use();
}
Run Code Online (Sandbox Code Playgroud)

例如,我有一个继承了这个并且在重写use()时没有参数的Book类,我有一个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
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试发送一个对象的变量列表,但对象类型总是可变的,我不确定在继承类中接收的语法.

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
} …
Run Code Online (Sandbox Code Playgroud)

java inheritance variadic-functions

18
推荐指数
3
解决办法
3万
查看次数

标签 统计

inheritance ×1

java ×1

variadic-functions ×1