只是想知道你是否能够帮助我解决我的问题。这可能是由于我不知道要搜索的正确关键字造成的。
这不是作业,只是匿名...
我有一个接口和一堆实现类:
interface Fruit
Banana implements Fruit
Apple implements Fruit
....
我有一个水果实用程序类。这是一种采用任何水果并将其切片的方法。
public static Fruit[] slice(Fruit f, int pieces)
如何将 Fruit 数组声明为与传递给方法的 Fruit 相同的类型?
即我怎样才能自动化:
Fruit[] a = new Apple[pieces];
如果我给它一个苹果?
.
编辑:澄清
我会有这样的代码:
Fruit a = new Apple();
Fruit b = new Banana();
Fruit[] slices1 = FruitUtil.slice(a, 3); //slices1 should be an Apple
Fruit[] slices2 = FruitUtil.slice(b, 3); //slices2 should be a Banana
Fruit newApple = FruitUtil.copy(a); //newApple should be an Apple
如何编写 slice(Fruit f, int slice) 或 copy(Fruit f) 方法,以便创建与在参数中传递的相同类型的 Fruit(无需覆盖每种类型的方法,或进行 instanceof 检查)