1. 程式人生 > >安卓註解使用,實體類指定須使用欄位, Google Gson 欄位過濾

安卓註解使用,實體類指定須使用欄位, Google Gson 欄位過濾

  實體類複用,專案中往往會遇到這樣一些問題,有一個欄位很多的實體類,然後向服務端提交資料的時候卻不需要這個實體類的全部欄位。所以我們通常的方法就是再新建一個只有需要欄位的實體類。還有一種方法就是本文要說到的註解,給某個操作時需要用到的欄位加上註解:

1.新介面SubmitAccept

/**某個時刻需要提交的欄位
 * @author  * @version 建立時間:2016年3月3日 上午10:52:53
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SubmitAccept 
{ }
2.新建類SubmitAcceptStrategy        (注:ExclusionStrategy 這個類屬於com.google.gson包
/**
 * 作者:e430 on 2016/9/26 21:32
 * <p>
* 郵箱:[email protected]
 */
public class SubmitAcceptStrategy implements ExclusionStrategy {
    @Override
public boolean shouldSkipField(FieldAttributes f) {
        Collection<Annotation> annotations = f.getAnnotations();
for (Annotation annotation : annotations) { if (annotation.annotationType() == SubmitAccept.class) { return false; } } return true; } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }

3.在實體類裡面需要的欄位上面加上註解 如:

@SubmitAccept
private String acceptPlace;//驗收地點

4.在用到的地方    程式碼如下:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.addSerializationExclusionStrategy(new SubmitAcceptStrategy());//第二步新建的類
String str = gsonBuilder.create().toJson(workSheetPublicInfo);//自己的實體類

這樣str裡面儲存的資料只有你加註解的欄位,完工。

歡迎評論!!!

相關推薦

註解使用實體指定使用 Google Gson 過濾

  實體類複用,專案中往往會遇到這樣一些問題,有一個欄位很多的實體類,然後向服務端提交資料的時候卻不需要這個實體類的全部欄位。所以我們通常的方法就是再新建一個只有需要欄位的實體類。還有一種方法就是本文要說到的註解,給某個操作時需要用到的欄位加上註解: 1.新介面Submi

匯入Excel時根據註解生成實體

一、環境說明:win10專業版、jdk1.8.0_171、eclipse4.7.3a、Junit5 二、建立maven工程,引入pom依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht

9】SQLiteDatabase、ContentValues

election use cursor 數據類型 ssa 語言 size 基本 模式 SQLiteDatabase類     android.database.sqlite.SQLiteDatabase類的實例都代表了一個SQLite數據庫的操作,通過SQLiteDatab

9】SQLiteOpenHelper 、增刪改操作

and arc 插入 被調用 val etc left nts ces SQLiteOpenHelper 類 SQLiteOpenHelper類是Android提供的用於操作SQLite數據庫的工具類,該工具類能方便地創建數據庫、表,以及管理數據庫版本。          

明日之後手遊版今日10點上線!來啊一起來擼狗啊

等了大半年,從T恤等到棉襖,從蘋果等到安卓,明日之後今天上午10點終於上線啦。這款和絕地求生:刺激戰場、王者榮耀都不同型別的末日生存手游到底怎麼樣?畢竟型別和方舟:生存進化差不多,方舟在國外也是大火,還是非常期待的。不管怎麼樣,先牽著你家的狗狗,來跟我一起擼擼,看看各位玩家對明日之後的評價,是否值得

一行程式碼搞定全螢幕適配——簡單粗暴-低入侵無繼承簡單高效

話不多說,先上解決方案 方案一(推薦)  1.引用工具類       DensityHelper.java 2.在自定義的 Application onCreate 方法中加入     new Dens

分享手機PDF轉成Excel的方法操作很簡單的

如何在手機中將PDF檔案格式轉換成Excel格式?因為PDF檔案的不可編輯性,所以很多時候我們收到的檔案都是PDF格式的,但是我們往往不僅僅是閱讀裡面的內容,大多數需要PDF檔案裡的內容,這時我們該怎麼辦呢?不妨試試手機PDF轉換吧。今天先來講一講手機端PDF轉換Exce

後臺date 轉前臺String jsp顯示方法實體是date型別 (互轉!)

後轉前  date轉String 先引入fmt標籤<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>,具體的URI請見jstl-*.jar中的fmt.tld。 <fmt:format

mybatis generator為實體生成自定義註釋(讀取資料庫的註釋新增到實體不修改原始碼)

我們都知道mybatis generator自動生成的註釋沒什麼實際作用,而且還增加了程式碼量。如果能將註釋從資料庫中撈取到,不僅能很大程度上增加程式碼的可讀性,而且減少了後期手動加註釋的工作量。 1、首先定義註釋生成外掛 package com.cmbc.datapla

實現任意控制元件view可拖拽並監聽拖拽和點選事件可自動拉回螢幕邊緣

因為專案中有需要實現控制元件可任意拖拽的需求,所以簡單寫了個自定義OnTouchListener,以作拋磚引玉,歡迎大家提議反饋。 完整實現類如下,程式碼中有詳細註釋: 使用者可以決定是否開啟自動拖拽邊緣功能,可以監聽控制元件的拖拽和點選事件 public cl

註解配置實體出現錯誤:Could not determine type for: java.util.Set, at table

org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: bs_merchant, for columns: [org.hibernate.mapping.Co

C# DataReader反射獲取實體(model) 實體集List

public static T FillModel<T>(IDataReader dr)         {          

檔案管理器開啟指定目錄

File destDir = new File(getApplicationContext().getExternalCacheDir()+"//eml"); Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

APP實戰(二):Activity管理記憶體回收及LeakCanary監測

每一個Activity元件都是一個單獨的介面,承載著與使用者互動的任務。也是應用最基本的功能之一,在不同介面之間切換,並實現不同的功能。 每一個程式必須要有一個Activity作為入口(Manifest檔案中將其<category>標籤設定為LAUNCHER),然後通過介面控制到

使用Java註解實體轉化為sql字串

首先是定義一個實體類,如下 /* * 定義使用者,通過註解對映到資料庫 */ @Table("user") public class User { @Column("id") private int id; @Column("username") privat

開發 做商城APP遇到的一些坑

一、安卓8.0以上,通知要做 通知渠道(NotificationChannel),不做的話收不到任何通知。 解決方案:要麼更改 targetSdkVersion 到26以下,要麼做通知渠道分類。搜一下安卓8.0通知適配,會有很多方案程式碼。 二、網路請求錯誤的提示:err

開發 類似於扣扣 刪除訊息 時滑動調出選項的功能實現

package com.example.sjd.danmu; import android.content.Context; import android.graphics.Color; import android.support.v4.view.ViewConfigurationCompat; impo

使用記錄筆記(2)UI介面按鈕響應事件

首先需要知道的是,在UI介面中新增好對應的button元件後,裡面會有對應id名稱,我們就是根據這個id名稱來查詢到對應的元件機器屬性。 private Button loadFile; private Button startFunc; 然後在init函式中:(init根據不同工程具體分析

--非同步處理工具(AsyncTask)

.xml程式碼如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schem

註解處理器-processor

最近在學習安卓開源框架發現,很多的開源框架都使用到了註解處理器,例如EventBus3.0。本文通過一個簡單的Demo來介紹如何使用註解處理器。如果喜歡的話,歡迎大家給star。 Demo需求描述 使用者通過執行一個傳入引數為A(類物件)的靜態方法,該方法會最終把引數A中加了特定