Wal*_*ter 3 java lambda constructor new-operator
我有一个带有这个构造函数的Java类MyClass:
public MyClass(Consumer<?> someMethod)
Run Code Online (Sandbox Code Playgroud)
我想这样做:
final MyClass myObject = new MyClass(obj -> {
doSomethingOutsideTheContextOfMyObject();
myObject.doSmomething(obj);
});
Run Code Online (Sandbox Code Playgroud)
但是我得到一个编译错误,即变量myObject可能没有被初始化.
根据我的研究,我无法切换显示错误的编译器,我不能伪造 - 初始化变量,因为它必须是最终的.我该怎么办?
这里:
final MyClass myObject
Run Code Online (Sandbox Code Playgroud)
声明一个新对象myObject.然后你继续:
= new MyClass(obj -> {
doSomethingOutsideTheContextOfMyObject();
myObject.doSmomething(obj);
Run Code Online (Sandbox Code Playgroud)
myObject在自己的声明中使用相同的!
那是不可能的!您正在以循环方式创建"自我引用"!
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |