在接口开发中我们经常会遇到一个问题,打个比方,我们的实体类A中有两个字段user和pwd但是接口中需要username和password这怎么办呢,我想到了两种方法:
1.新创建一个实体类B或者new一个map,将A中的字段一个一个取出来再放到B中或者放到map中

这种方法如果字段少的话还好,但若是字段多那就太麻烦了。

2.这种方法我来详细说下:
首先新建一个实体类,我称之为中间实体类,为了简单我就不写那么多字段了

package com.qcr.jituan.sys.service.contract.impl;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;

public class SealSaveFieldSync {

@JsonProperty("sid")
private String pkSeal;//主键

@JsonProperty("bcode")
private String vssubtypecode;

@JsonProperty("pname")
private String vssubtypename;

@JsonProperty("porg")
private String vssubordid;

@JsonProperty("vorgname")
private String vssubordname;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

说明:数字1对应接口中的参数字段;数字2对应我们实体类中的字段

实体类写好了接下来就是重点了,为了代码的工整,我是直接提取出来一个方法

/**
* 实体类转Map
* @param seal
* @return
*/
public static HashMap<String, String> entityToMap(SealVO seal) {
HashMap<String, String> map = new HashMap();
for (Field field : seal.getClass().getDeclaredFields()){
try {
boolean flag = field.isAccessible();
field.setAccessible(true);
Object o = field.get(seal);
if (o != null){
Field contField = SealSaveFieldSync.class.getDeclaredField(field.getName());
JsonProperty voField = contField.getAnnotation(JsonProperty.class);
String s = voField.value();
map.put(s, o.toString());
}
field.setAccessible(flag);
} catch (Exception e) {
e.printStackTrace();
}
}
return map;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
代码中的seal是我的实体类,通过这种方法我们得到的数据是这样的:

通过这种方法可以简单快速的将实体类中一个字段名称,转换成了另一个字段!!

感谢阅读!!
---------------------

java将字段映射成另一个字段,关于 接口传参 字段不对应转换的更多相关文章

  1. 对于Oracle中Number类型的字段映射成Java中的具体类型的问题

    我在Oracle中给一个用户Id字段设置为Number类型,使用JDBC在完成ORM的时候,以为其可以自动转换为Integer,因为我的POJO类id使用的就是Integer.但事实是,我在测试的时候 ...

  2. mysql把一个表的字段update成另一个表的字段根据id

    mysql把一个表的字段update成另一个表的字段根据id 1.填充activity表里面的creator字段,用org的founderid,其中activity的orgid要和org的id对应,具 ...

  3. MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现

    1. 问题描述 在使用MyBatis,我们经常会遇到这种情况:SELECT两个字段,需要返回一个Map,其中第一个字段作为key,第二个字段作为value.MyBatis的MapKey虽然很实用,但并 ...

  4. sqlserver 将 “用 特定字符 分隔的一个字段” 拆分成多个字段,然后两个表之间数据更新

    将源TXT文件sourceFile_table.txt导入数据库,生成新表dbo.sourceFile_table.新增字段lon.lat.shi.xian 源表dbo.sourceFile_tabl ...

  5. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  6. SQL 数据库 学习 007 通过一个示例简单介绍什么是字段、属性、列、元组、记录、表、主键、外键 (上)

    SQL 数据库 学习 007 通过一个示例简单介绍什么是字段.属性.列.元组.记录.表.主键.外键 (上) 我们来介绍一下:数据库是如何存储数据的. 数据库是如何存储数据的 来看一个小例子 scott ...

  7. hibernate字段映射枚举类型

    上一篇介绍了mybatis字段映射枚举类型,这一篇给大家介绍一下hibernate字段怎么去映射枚举类型的(这只是一种参考方式,映射方法还有很多种). 还是以上篇sku表为例,sku表里一个statu ...

  8. mybatis字段映射枚举类型

    在底层使用mybatis的时候,我们可能会需要把表里的字段映射到Java里面的枚举类,现总结下工作中的用法: sku表里一个status_type字段为int类型.(这里是postgresql的脚本) ...

  9. 修改mysql表结构,添加一个主键索引自增字段,修改原来的主字段为普通字段

    原来有一个字段id,为自增,主键,索引.现在要新增一个字段s_id为自增,主键,索引.同时把原来的主字段改成普通字段,默认值为0. Alter table e_diamond_jhds change ...

随机推荐

  1. 小幻美图 API

    『不忘初心,方得始终.』 小幻美图 API 更新:2015.03.29 目前提供的API共有10种! 必应各种今日获取API共4种! 本站收录图片获取API共4种! 网络图片尺寸修改API共1枚! 百 ...

  2. 超线程技术——超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的效能提升,本质单核模拟双核!和异步编程的思想无异。

    超线程是Intel 所研发的一种技术,于2002年发布.超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程.超线程技术原先只应用于Intel Xeon处理器中,当时称为Sup ...

  3. Masonry整体动画更新约束

    前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...

  4. I.MX6 简单电路模拟USB设备的插入

    /**************************************************************************** * I.MX6 简单电路模拟USB设备的插入 ...

  5. 使用x-template 定义模板

    demo <script type="text/x-template" id="myFirstScriptComponent"> <p> ...

  6. css3 混合模式mix-blend-mode background-blend-mode 以及混合模式的隔断 isolation

    css 混合模式 mix-blend-mode: 让 元素内容 和 这个元素 以及 下面的元素 发生混合 background-blend-mode 背景的混合模式 可以是背景图片的混合也可以是背景图 ...

  7. linq to EF分组查询 group by 的使用

    第一种:查询表达式语法: IQueryable<EnrollmentDateGroup> data = from student in db.Students group student ...

  8. 关于kafka-clients JAVA API的基本使用

    首先老规矩, 引入maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId&g ...

  9. idea运行scala有问题

    报这个错误:java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/m ...

  10. bzoj 5195: [Usaco2018 Feb]Directory Traversal【树形dp】

    注意到目录是一颗树结构,然后就简单了,预以1为根的处理出dis[u]为以这个点为根,到子树内的目录总长,si为子树内叶子数 第二遍dfs换根即可 #include<iostream> #i ...