Что означает синтаксис в Java: новый поток <Integer> () {…}?

Я столкнулся со следующим синтаксисом Java, который я не распознаю.

Эта часть в порядке:

public abstract class Stream<T> implements Iterator<T> {  
   public boolean hasNext() {  
      return true; }  
   public void remove() {  
      throw new RuntimeException("Unsupported Operation"); }  
}  

Но это я не понимаю:

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

while(true){  
  System.out.print(ones.next() + ", ");  
}  

Что это?

Ответы на вопрос(3)

Ваш ответ на вопрос