Can I have an abstract builder class in java with method chaining without doing unsafe operations?

后端 未结 3 2095
一个人的身影
一个人的身影 2021-01-31 18:08

I\'m trying to have an abstract base class for some builder classes so I can easily reuse code between the Builder implementations. I want my builders to support method chaining

3条回答
  •  萌比男神i
    2021-01-31 18:30

    One alternative is not to use generics, but use overrides:

    abstract class AbstractBuilder
    {
       public AbstractBuilder foo()
       {
          // set some property
          return this;
       }
    }
    
    class TheBuilder extends AbstractBuilder
    {
       @Override public TheBuilder foo()
       {
          super.foo(); return this;
       }
       public TheBuilder bar()
       {
          // set some other property
          return this;
       }
    
       public Object build()
       {
          return new Object();
       }
    }
    

提交回复
热议问题