What does the syntax mean in Java: new Stream(){ … }?

后端 未结 3 647
夕颜
夕颜 2021-01-20 23:30

I have encountered the following Java syntax that I don\'t recognize.

This part is fine:

public abstract class Stream implements Iterator

        
相关标签:
3条回答
  • 2021-01-20 23:55

    ones = new Stream<Integer>() {
    public Integer next() {
    return 1; }
    };

    Assigns a new instance of an anonymous implementation of Stream<Integer> (that contains a virtually unlimited number of 1s. You may find more on anonymous classes in Java In A Nutshell

    0 讨论(0)
  • 2021-01-21 00:01

    This is providing an inline (anonymous) subclass of the Stream class.

    Functionally, it is the same as:

    public NewClass extends Stream {
        public Integer next() {  
           return 1; 
        }  
    }
    

    and

    void someMethodInAnotherClass {
        Stream stream = new NewClass();
    }
    

    but as this class definition isn't used outside the method body, you can define it as anonymous.

    0 讨论(0)
  • 2021-01-21 00:15

    This is defining a Anonymous class which implements the Stream interface. To implement the interface we need to implement the method next.

    0 讨论(0)
提交回复
热议问题