gpt4 book ai didi

java - 在给定条件下退出方法的非侵入式方式?

转载 作者:行者123 更新时间:2023-12-01 18:10:20 26 4
gpt4 key购买 nike

鉴于此方法:

public void walk( String path ,  ArrayList<String> files, String ext) 

它将所有文件收集到ArrayList<> files中从 path 开始并具有给定的扩展名 ext ,我正在寻找一种在满足特定条件时停止搜索的方法。例如,它应该在 files.size() 时停止。变得大于给定数字。我怎样才能在不修改方法的情况下做到这一点walk()

不修改方法是指不触及编辑器中的源代码。这是我喜欢的状态,我不想碰它,因为它只是为了测试目的。

最佳答案

创建扩展 ArrayList 的类并重写 add 方法:

public class MyList extends ArrayList<String> {

@Override
public boolean add(String item) {
boolean added = super.add(item);
if (added && size() >= 10) {
throw MaxItemsReachedException();
}
}

}

例如,当 size 大于或等于 10 时,您可以抛出异常。

并使用 MyList 而不是 ArrayList 的实例调用您的方法:

MyList list = new MyList();
walk("path", list, "extension");

关于java - 在给定条件下退出方法的非侵入式方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33519178/

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