Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法从层次结构中更上层的类中退出命名循环(或以其他方式)?_Java_Loops_Hierarchy - Fatal编程技术网

Java 有没有办法从层次结构中更上层的类中退出命名循环(或以其他方式)?

Java 有没有办法从层次结构中更上层的类中退出命名循环(或以其他方式)?,java,loops,hierarchy,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 abstract class AbstractMapper{

    protected abstract void doMap();

    protected String mapCode(final String code){

        if(code.length > 5){
            //continue mainLoop from mapper
        }
        return code;
    }
}
这是一个映射器的实现(众多映射器之一):

我曾经在mainLoop中实现过mapper,在很多mapper中我称之为mapCode。然而,每当我的代码长度不是我想要的时,我想继续main循环

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

任何帮助都将不胜感激


谢谢

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

    mainLoop: for(LoopVar var: LoopVars){

        String code = var.getCode();
        if(shouldContinueMainLoop(code)) 
             continue;
        code = mapCode(code);
        //finish mapping
}
    mainLoop: for(LoopVar var: LoopVars){

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