例子:
1.普通的bean
package com.louisgeek.louischainingmethod;
/**
* Created by louisgeek on 2016/8/1.
*/
public class NewsBean {
private int newsID;
private String newsTitle;
private String newsContent;
@Override
public String toString() {
return "NewsBean{" +
"newsID=" + newsID +
", newsTitle='" + newsTitle + '\'' +
", newsContent='" + newsContent + '\'' +
", newsImgUrl='" + newsImgUrl + '\'' +
'}';
}
private String newsImgUrl;
public int getNewsID() {
return newsID;
}
public void setNewsID(int newsID) {
this.newsID = newsID;
}
public String getNewsTitle() {
return newsTitle;
}
public void setNewsTitle(String newsTitle) {
this.newsTitle = newsTitle;
}
public String getNewsContent() {
return newsContent;
}
public void setNewsContent(String newsContent) {
this.newsContent = newsContent;
}
public String getNewsImgUrl() {
return newsImgUrl;
}
public void setNewsImgUrl(String newsImgUrl) {
this.newsImgUrl = newsImgUrl;
}
}
2.简单的改变:
package com.louisgeek.louischainingmethod;
/**
* Created by louisgeek on 2016/8/1.
*/
public class NewsBean_Chaining {
private int newsID;
private String newsTitle;
@Override
public String toString() {
return "NewsBean_Chaining{" +
"newsID=" + newsID +
", newsTitle='" + newsTitle + '\'' +
", newsContent='" + newsContent + '\'' +
", newsImgUrl='" + newsImgUrl + '\'' +
'}';
}
private String newsContent;
private String newsImgUrl;
public int getNewsID() {
return newsID;
}
public NewsBean_Chaining setNewsID(int newsID) {
this.newsID = newsID;
return this;
}
public String getNewsTitle() {
return newsTitle;
}
public NewsBean_Chaining setNewsTitle(String newsTitle) {
this.newsTitle = newsTitle;
return this;
}
public String getNewsContent() {
return newsContent;
}
public NewsBean_Chaining setNewsContent(String newsContent) {
this.newsContent = newsContent;
return this;
}
public String getNewsImgUrl() {
return newsImgUrl;
}
public NewsBean_Chaining setNewsImgUrl(String newsImgUrl) {
this.newsImgUrl = newsImgUrl;
return this;
}
}
3.仿AlertDialog.Builder
package com.louisgeek.louischainingmethod;
/**
* Created by louisgeek on 2016/8/1.
*/
public class NewsBean_Builder {
private int newsID;
private String newsTitle;
private String newsContent;
private String newsImgUrl;
//
public int getNewsID() {
return newsID;
}
public void setNewsID(int newsID) {
this.newsID = newsID;
}
public String getNewsTitle() {
return newsTitle;
}
public void setNewsTitle(String newsTitle) {
this.newsTitle = newsTitle;
}
public String getNewsContent() {
return newsContent;
}
public void setNewsContent(String newsContent) {
this.newsContent = newsContent;
}
public String getNewsImgUrl() {
return newsImgUrl;
}
public void setNewsImgUrl(String newsImgUrl) {
this.newsImgUrl = newsImgUrl;
}
//
@Override
public String toString() {
return "NewsBean_Builder{" +
"newsID=" + newsID +
", newsTitle='" + newsTitle + '\'' +
", newsContent='" + newsContent + '\'' +
", newsImgUrl='" + newsImgUrl + '\'' +
'}';
}
//
private NewsBean_Builder(Builder builder) {
this.newsID = builder.newsID;
this.newsTitle = builder.newsTitle;
this.newsContent = builder.newsContent;
this.newsImgUrl = builder.newsImgUrl;
}
//
public static class Builder{
private int newsID;
private String newsTitle;
private String newsContent;
private String newsImgUrl;
public Builder newsID(int newsID) {
this.newsID = newsID;
return this;
}
public Builder newsTitle(String newsTitle) {
this.newsTitle = newsTitle;
return this;
}
public Builder newsContent(String newsContent) {
this.newsContent = newsContent;
return this;
}
public Builder newsImgUrl(String newsImgUrl) {
this.newsImgUrl = newsImgUrl;
return this;
}
public NewsBean_Builder build(){
return new NewsBean_Builder(this);
}
}
}
使用对比:
package com.louisgeek.louischainingmethod;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NewsBean newsBean=new NewsBean();
newsBean.setNewsID(1);
newsBean.setNewsTitle("TITLE1");
newsBean.setNewsContent("CONTENT1");
newsBean.setNewsImgUrl("IMAGEURL1");
Log.d(TAG, "onCreate: newsBean:"+newsBean.toString());
NewsBean_Chaining newsBean_chaining=new NewsBean_Chaining();
newsBean_chaining.setNewsID(2)
.setNewsTitle("TITLE2")
.setNewsContent("CONTENT2")
.setNewsImgUrl("IMAGEURL2");
Log.d(TAG, "onCreate: newsBean_chaining:"+newsBean_chaining.toString());
NewsBean_Builder.Builder news_B_Builder=new NewsBean_Builder.Builder();
NewsBean_Builder newsBean_B=news_B_Builder.newsID(3)
.newsTitle("TITLE3")
.newsContent("CONTENT3")
.newsImgUrl("IMAGEURL3")
.build();
Log.d(TAG, "onCreate: newsBean_B:"+newsBean_B.toString());
//newsBean_B.getNewsContent()
}
}