gpt4 book ai didi

java - 重用增强型 For 循环不同的类类型

转载 作者:行者123 更新时间:2023-12-01 07:51:26 25 4
gpt4 key购买 nike

我希望这不是重复,因为我找不到任何可以准确回答我正在寻找的内容的内容。

我有一大块在填充大 map 时重复的代码。
不同代码块之间的唯一区别是循环的类。

示例:

for (SomeClass class : SomeClassList) {
// Repeated code here.
}
for (AnotherClass aClass : AnotherClassList) {
// Repeated code here.
}
for (AndAnotherClass fClass : AndAnotherClassList) {
// Repeated code here.
}
etc...

所有这些类共享两个方法:getXYZ()setXYZ()。我尝试过使用泛型,但多种类型都失败了。我想创建一个方法,我可以传入不同类的不同列表,在不同列表上执行相同的代码。

类似这样的:

public void anyList(List<?> list){
for(classOfList item: list){
//code here
}
}

最佳答案

如果它们是您的类,请将 getXYZsetXYZ 放入它们都实现的接口(interface)中(直接或从基类等实现),然后使用接口(interface)作为您在增强 for 循环中的类型。

interface HasXYZ {
void setXYZ(XYZType xyz);
XYZType getXYZ();
}

class SomeClass implements HasXYZ {
// ...
}

class AnotherClass implements HasXYZ {
// ...
}

class AndAnotherClass implements HasXYZ {
// ...
}

然后你的anyList:

public void anyList(List<HasXYZ> list){
for (HasXYZ item : list){
// code here
}
}

然后:

anyList(someClassList);
anyList(anotherClassList);
anyList(andAnotherClassList);

关于java - 重用增强型 For 循环不同的类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36723389/

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