Java 中的语法含义是什么:new Stream(){ ... }?

发布于 2024-08-20 03:41:03 字数 523 浏览 10 评论 0原文

我遇到过以下我不认识的 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() + ", ");  
}  

这是什么?

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

This part is fine:

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

But this I don't get:

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

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

What it is?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

墨落画卷 2024-08-27 03:41:03

这提供了 Stream 类的内联(匿名)子类。

相同

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

从功能上讲,它与: and

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

,但由于此类定义不在方法体之外使用,因此您可以将其定义为匿名。

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.

清风无影 2024-08-27 03:41:03

ones = new Stream() {
公共整数 next() {
返回1; }
分配

Stream 匿名实现的新实例(包含几乎无限数量的 1。您可以在匿名上找到更多信息Java 简述中的类

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

放低过去 2024-08-27 03:41:03

这是定义一个实现 Stream 接口的匿名类。为了实现该接口,我们接下来需要实现该方法。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文