ArrProcBuilder
时,我回来了。我很高兴发生这件事,因为我不明白。为什么需要在属于构建器类的方法中返回this
?由于这些方法正在改变对象,并且最后一次调用.build()
会返回带有这些参数的目标对象,为什么需要在事先返回任何内容?
所以new builder.x().y().z().build();
实际上创建了4个不同的对象:一个用于x,一个用于y,一个用于z和构建?
我试图使用构建器模式,但某些东西看起来并不正确。该程序用
编译 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);
这是addSwapSelection
public void addSwapSelection(byte swapSelection)
{
this.swapSelection = swapSelection;
}
答案 0 :(得分:1)
addSwapSelection()不会像它应该那样返回this
。
答案 1 :(得分:1)
如果方法 addSwapFunction()返回对象的引用,即其代码看起来像
public ArrProcBuilder addSwapSelection(byte b) {
//some code
//returns a reference to this object
return this;
}
然后你可以像你一样链接到 addSwapFunction()的调用。我怀疑它的返回类型是无效的,这意味着你将无法进行可链接的调用。
答案 2 :(得分:0)
取消引用是在评估对象时发生的事情,因此“无法解除引用”可能意味着您将变量用作对象,而不是。
这里addSwapFunction()
返回对象的引用。