Android Java方法链起来!链式调用方法、仿Builder 等。
16lz
2021-01-23
例子:
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
更多相关文章
- Android GridView 例子
- android 调用前摄像头进行拍照的方法及完整例子
- android通过网络下载文字和Mp3的例子
- android google map v2的小例子 美洲地图的显示
- 2011.10.19(3)——— android 一个便签的Widget例子
- Kivy A to Z -- Kivycatalog例子无法在Android平台上运行及异常
- android的手势识别例子