我想在Java中实现方法链接.
我怎样才能实现它?
也让我知道何时使用它.
public class Dialog {
public Dialog() {
}
public void setTitle(String title) {
//Logic to set title in dialog
}
public void setMessage(String message) {
//Logic to set message
}
public void setPositiveButton() {
//Logic to send button
}
}
Run Code Online (Sandbox Code Playgroud)
我想创建方法链,我可以使用如下:
new Dialog().setTitle("Title1").setMessage("sample message").setPositiveButton();
Run Code Online (Sandbox Code Playgroud)
或者喜欢
new Dialog().setTitle("Title1").setMessage("sample message");
Run Code Online (Sandbox Code Playgroud)
或者喜欢
new Dialog().setTitle("Title1").setPositiveButton();
Run Code Online (Sandbox Code Playgroud) 我正在尝试为一些构建器类创建一个抽象基类,这样我就可以轻松地在Builder实现之间重用代码.我希望我的构建器支持方法链接,因此方法必须返回最具体类型的"this"实例.我想我可以用泛型来做这件事.不幸的是,如果不使用不安全的操作,我就无法做到这一点.可能吗?
下面是我如何尝试它(以及它如何工作)的示例代码.我想避免在"foo()"中投射到T(导致未经检查的警告),这可以做到吗?
public class Builders
{
public static void main( final String[] args )
{
new TheBuilder().foo().bar().build();
}
}
abstract class AbstractBuilder<T extends AbstractBuilder<?>>
{
public T foo()
{
// set some property
return (T) this;
}
}
class TheBuilder extends AbstractBuilder<TheBuilder>
{
public TheBuilder bar()
{
// set some other property
return this;
}
public Object build()
{
return new Object();
}
}
Run Code Online (Sandbox Code Playgroud)