gpt4 book ai didi

java - 如何实例化(在方法内)实现相同接口(interface)的不同类?

转载 作者:行者123 更新时间:2023-12-03 18:28:45 25 4
gpt4 key购买 nike

只是想知道您是否能帮我解决我的问题。这可能是因为我不知道要搜索的正确关键字。

这不是作业,只是匿名...

我有一个接口(interface)和一堆实现类:

interface Fruit
Banana implements Fruit
Apple implements Fruit
....

我有一个 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 检查)

最佳答案

首先我建议放弃引用数组。请改用 List。那么就比较简单了:

public static <T extends Fruit> List<T> slice(T fruit, int pieces)

关于java - 如何实例化(在方法内)实现相同接口(interface)的不同类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com