1. 程式人生 > >java map轉java bean物件

java map轉java bean物件

map轉換為java bean物件

map格式Map<String,String>
bean宣告在下面
寫這個東西的原因就是因為最近上班了,學/用java了,學習了心儀已久的java反射,這裡使用它來製作一個簡單的map轉java bean物件的,小demo.需要你對java 以及java反射機制有簡單的瞭解(我的命名很渣渣^ ^)

//java bean宣告
package test;

public class Chen {
    private String name;
    private String sex;
    private Integer age;
    public
String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public
void setAge(Integer age) { this.age = age; } }
package test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Main1 {
    public static void main(String[] args) {
        Map<String , String> map = new
HashMap<String, String>(); map.put("name", "小陳"); map.put("sex", "man"); map.put("age", "10"); Chen chen = null; try { chen = (Chen) objectSwitch(map, Chen.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.printf("%s %s %s\n",chen.getName() , chen.getSex() , chen.getAge()); } private static Object objectSwitch(Map<String ,String> map , Class c) throws Exception{ Object o = null; try { o = c.newInstance(); //建立物件 } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } Field[] fields = c.getDeclaredFields(); //獲得所有屬性欄位 ArrayList<String> list = new ArrayList<String>(); for(Field f : fields){ list.add(f.getName()); f.setAccessible(true); } int i = 0; for(String str : list){ if(map.get(str) != null){ try {//暫時沒有找到直接獲取Fields直接獲取屬性型別的方法 fields[i].set(o, fun(fun1(fields[i].getType().toString()), map.get(str))); //給它建立一個物件,可能物件裡面的資料是空,也很有可能丟擲異常 i++; } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return o; } private static Object fun(Class c , String str)throws Exception{ Constructor constructor = c.getConstructor(str.getClass()); Object obj = constructor.newInstance(str); return obj; } private static Class fun1(String str){ String strTmp = str.substring(6, str.length()); //如果對6有疑惑,直接輸出str就會好了 try { return Class.forName(strTmp); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
程式結果:
小陳 man 10

當然這程式也有一定的問題就是沒有測試,基本型別.應該基本型別是會出現問題的,這個程式不考慮效能,應該能應對大部分情況.由於剛開始工作時間不夠充裕(懶的介面),異常還有命名並不夠規範.如果不正確或者疑惑您都可以聯絡我,一起交流學習[email protected]

相關推薦

java mapjava bean物件

map轉換為java bean物件 map格式Map<String,String> bean宣告在下面 寫這個東西的原因就是因為最近上班了,學/用java了,學習了心儀已久的java反射,這裡使用它來製作一個簡單的map轉java bean物件

使用Java反射機制將Bean物件轉換成Map(駝峰命名方式 — 下劃線命名方式)

1、駝峰與下劃線方式名稱互相轉換工具類 public class CamelUnderlineUtil { private static final char UNDERLINE ='_'; public static String camelToUnderline(

Java mapscala map

public static void main(String[] args) { Map<String, String> map = new HashMap<String,S

實體物件Map/Map成實體物件的工具類

package com.yanshu.test; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; /**  * 實體物件轉成Map  * @auth

java 反射轉換類(把map轉為java bean , 把javabean map)

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import

javamapList物件

  Collection<實體類> valueCollection2 = map2.values();   List<實體類> valueList= new ArrayList<Purcha

[]jackson json字串、mapjava物件的轉換例子

ackson框架 json字串、map、java物件的轉換例子 先下載框架jar包: 下面是一些例子: package jackson; import java.io.File; import java.io.FileInputStream; import java.

Java Map按照Key和Value排序【

try lin tor put array ava ble nbsp key package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.ut

JAVAMAPLIST

new pub values pac exc except gpo x11 toarray @Test public void testMap2List() throws Exception{ Map<String, String> map = new

()java之Spring(IOC)註解裝配Bean詳解

pos work 多個 public pre tor not 註解裝配 creat 在這裏我們要詳細說明一下利用Annotation-註解來裝配Bean。 因為如果你學會了註解,你就再也不願意去手動配置xml文件了,下面就看看Annotation的魅力所在吧。 先

json字符串javaMap<String,String>

json字符串轉成javamappackage com.iqc.app.qc.common.util; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; public

JAVA實現map成XML格式

JAVA實現map集合轉成XML格式 例如: 程式碼塊 import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.d

Java listmap,listlist

public class ListToListOrMapUtils { public static List list2list(List list, String fieldName4Key,Class<?> c) { /** *@

java中json轉化成物件物件化成json

 首先要帶入第三方工具類jar包 gson 1,普通類: public void test() { //1、建立Gson物件 Gson gson = new Gson(); User user = new User(1, "liujinghan", "123456",

JAXB 深入顯出 - JAXB 教程 XMLJava物件初探(Unmarshaller)

摘要: JAXB 作為JDK的一部分,能便捷地將Java物件與XML進行相互轉換,本教程從實際案例出發來講解JAXB 2 的那些事兒。完整版目錄 前情回顧 之前介紹的都是將Java物件轉換為XML,這一節開始,將講述XML資料轉換為JAVA物件。 資料準備 現在有一段XM

JAXB 深入顯出 - JAXB 教程 XMLJava物件深入(Unmarshaller)

摘要: JAXB 作為JDK的一部分,能便捷地將Java物件與XML進行相互轉換,本教程從實際案例出發來講解JAXB 2 的那些事兒。完整版目錄 前情回顧 上一節以簡單介紹了 UnMarshaller 的過程,主要介紹了多種資料來源如何處理。這一節將深入介紹XML資料轉換為JAV

java:Map編歷物件再get讀取物件內容

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /*建一個map: key是 工人的工號 :

javascript遍歷java Map物件

後臺: public class AjaxAction extends ActionSupport{ private Map<String, Integer> mymap=new HashMap<String, Integer>(); public String e

json串java物件工具類

jar:fastjson-1.2.31.jar 類名:com.alibaba.fastjson.JSONArray.class 目前就使用到2個轉換,前一個引數傳json串,後一個引數傳實體類的class     json串轉java物件,JSONArray.parse

FastJson 字串JAVA物件 (父物件包含子物件的 json 串)

package A; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import pojo.Child; import pojo.Preant; public class A {