实体类复用,项目中往往会遇到这样一些问题,有一个字段很多的实体类,然后向服务端提交数据的时候却不需要这个实体类的全部字段。所以我们通常的方法就是再新建一个只有需要字段的实体类。还有一种方法就是本文要说到的注解,给某个操作时需要用到的字段加上注解:
1.新接口SubmitAccept
/**某个时刻需要提交的字段 * @author * @version 创建时间:2016年3月3日 上午10:52:53 */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface SubmitAccept { }
/** * 作者:e430 on 2016/9/26 21:32 * <p> * 邮箱:chengzehao@163.com */ 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里面存储的数据只有你加注解的字段,完工。
欢迎评论!!!