Android Java方法链起来!链式调用方法、仿Builder 等。

来源:互联网 发布:车铣中心自动编程 编辑:程序博客网 时间:2024/05/16 11:03

例子:
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()    }}

https://github.com/louisgeek/LouisChainingMethod

0 0
原创粉丝点击