gpt4 book ai didi

java - 从传入对象构造函数的 lambda 访问对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:19:39 27 4
gpt4 key购买 nike

我有一个带有此构造函数的 Java 类 MyClass:

public MyClass(Consumer<?> someMethod)

我想这样做:

final MyClass myObject = new MyClass(obj -> { 
doSomethingOutsideTheContextOfMyObject();
myObject.doSmomething(obj);
});

但是我得到一个编译器错误,变量 myObject 可能没有被初始化。

根据我的研究,我无法切换显示错误的编译器,而且我无法伪造初始化变量,因为它必须是最终变量。我该怎么办?

最佳答案

这里:

final MyClass myObject

声明一个新对象myObject。然后你继续:

  = new MyClass(obj -> { 
doSomethingOutsideTheContextOfMyObject();
myObject.doSmomething(obj);

在自己的声明中使用完全相同的 myObject!

这不可能!您正在以循环方式创建“ self 引用”!

关于java - 从传入对象构造函数的 lambda 访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com