java不能取消对void的引用;尝试使用生成器模式
编辑:我正在返回void,而我本应该返回ArrProcBuilder
。我很高兴这件事发生了,因为我不明白。为什么需要在属于生成器类的方法中返回this
?既然这些方法正在对对象进行变异,并且对.build()
的最后一次调用返回带有这些参数的目标对象,那么为什么需要先返回任何内容呢
所以在new builder.x().y().z().build();
中实际上创建了4个不同的对象:一个用于x,一个用于y,一个用于z和build
我试图使用生成器模式,但有些地方似乎不正确。这个程序是用计算机编译的
ArrProcBuilder apBuild = new ArrProcBuilder(randData);
apBuild.addSwapSelection((byte)swap);
apBuild.addPivSelection((byte)pivot);
但有了这一点,我得到了一个“虚无不能被消除”的错误
ArrProcBuilder apBuild = new ArrProcBuilder(randData);
apBuild.addSwapSelection((byte)swap).addPivSelection((byte)pivot);
这是我们的选举
public void addSwapSelection(byte swapSelection)
{
this.swapSelection = swapSelection;
}
# 1 楼答案
解引用是当对象被计算时发生的事情,所以“不能被解引用”可能意味着你正在使用一个变量作为对象,而它不是
这里
addSwapFunction()
返回对对象的引用# 2 楼答案
addSwapSelection()不会像应该的那样返回
this
# 3 楼答案
如果方法addSwapFunction()返回对对象的引用,即其代码类似
然后,您可以像以前那样将调用链接到addSwapFunction()。我怀疑它的返回类型是void,这意味着您将无法进行可链接的调用