java - 有没有一种方法/解决方法来增加 java8 中的整数

标签 java lambda java-8

我有以下方法执行树遍历并执行一些操作:

public int method(){
    int retVal;
    Tree t;
    //initialization of t
    t.accept(() -> ++retVal)); //error, variable is not 
                               //effectively final
    return retVal;
 }

在哪里

public interface Visitor{
    public void visitNode();
}

public interface Tree{
     /**
      * Traverses this tree and perform some action in each node
      */
    public void accept(Visitor v); 

    //other methods omitted
}

有没有办法解决这个问题?

最佳答案

没有任何不涉及传入对象而不是局部变量的方法。但是,您可以执行以下任一操作:

  1. 使用AtomicInteger
  2. 使用int[1]
  3. (如果适用)将 int 移动为实例字段

关于java - 有没有一种方法/解决方法来增加 java8 中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988336/

相关文章:

java - Java 1.8.0_65 的推断类型问题

C++ lambda 运算符 ==

java - 通过参数中的方法调用方法

java - 通过 Java 套接字发送带有 <APPLET> 标记的 html 文件

Java无法连接MySQL服务器

lambda - 是否可以将 maplist/3 与 'anonymous' 谓词一起使用?

java - 如何链接到 Java 8 供应商

Java 8 Stream - 为什么过滤器方法不执行?

java - Android Studio - 白框的正确术语

Java:JApplet,如何将它嵌入网页?