Is there a Java equivalent to C#'s 'yield' keyword?

前端 未结 6 1117
自闭症患者
自闭症患者 2020-11-27 11:36

I know there is no direct equivalent in Java itself, but perhaps a third party?

It is really convenient. Currently I\'d like to implement an iterator that yields all

6条回答
  •  囚心锁ツ
    2020-11-27 12:03

    Stream.iterate(seed, seedOperator).limit(n).foreach(action) is not the same as yield operator, but it may be usefull to write your own generators this way:

    import java.util.stream.Stream;
    public class Test01 {
        private static void myFoo(int someVar){
            //do some work
            System.out.println(someVar);
        }
        private static void myFoo2(){
            //do some work
            System.out.println("some work");
        }
        public static void main(String[] args) {
            Stream.iterate(1, x -> x + 1).limit(15).forEach(Test01::myFoo);     //var1
            Stream.iterate(1, x -> x + 1).limit(10).forEach(item -> myFoo2());  //var2
        }
    }
    

提交回复
热议问题