java - 有什么方法可以从层次结构中更高的类中退出命名循环(或其他方式)?

标签 java loops hierarchy

我有这样的抽象类布局:

public abstract class AbstractMapper{

    protected abstract void doMap();

    protected String mapCode(final String code){

        if(code.length > 5){
            //continue mainLoop from mapper
        }
        return code;
    }
}

以及映射器的实现(众多之一):

public class Mapper1{

    @Override
    public void doMap(){

        mainLoop: for(LoopVar var: LoopVars){

            String code = var.getCode();
            code = mapCode(code);
            //finish mapping
    }
}

我在曾经实现的映射器中拥有mainLoop,并且在许多映射器中我称之为mapCode。不过,每次我的代码长度不是我想要的时,我都想继续 mainLoop。

我知道我可以简单地在每个实现的映射器中添加额外的检查,但是有很多映射器,理想情况下我想在抽象类的方法中干净地完成这一切(我也不想命名我的循环,但mapCode通常位于嵌套循环内)。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

为什么不在抽象映射器中添加一个 shouldContinueMainLoop(code) ?这样,它将在所有可用的映射器中实现,并且在 Mapper1 调用 中也可用。您只需将 mainLoop 更改为

    mainLoop: for(LoopVar var: LoopVars){

        String code = var.getCode();
        if(shouldContinueMainLoop(code)) 
             continue;
        code = mapCode(code);
        //finish mapping
}

关于java - 有什么方法可以从层次结构中更高的类中退出命名循环(或其他方式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25401655/

相关文章:

java - Selenium InternetExplorerDriver 没有将焦点放在窗口上

javascript - 将 async/await 与 for in 循环一起使用

php - 查询树的项目数

ios - 触摸事件不会在部分扩展到父 UIView 之外的子 UIView 之外注册

重新排列 R 中列表列表中的层次结构

java - Main 方法在执行过程中等待线程完成。为什么?

java - Gradle building rest spring app找不到主类

javascript - 查找数组中不同的元素并返回其位置

java - 为什么我的 for 循环只完成一次任务?

java - 使用 ObjectId 函数将 JSON 反序列化为 Map<String, Object>