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 map轉java 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 map轉scala 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
java 將map轉List物件
Collection<實體類> valueCollection2 = map2.values(); List<實體類> valueList= new ArrayList<Purcha
[轉]jackson json字串、map、java物件的轉換例子
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
JAVA中MAP轉LIST
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字符串轉java的Map<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 list轉map,list轉list
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 教程 XML轉Java物件初探(Unmarshaller)
摘要: JAXB 作為JDK的一部分,能便捷地將Java物件與XML進行相互轉換,本教程從實際案例出發來講解JAXB 2 的那些事兒。完整版目錄 前情回顧 之前介紹的都是將Java物件轉換為XML,這一節開始,將講述XML資料轉換為JAVA物件。 資料準備 現在有一段XM
JAXB 深入顯出 - JAXB 教程 XML轉Java物件深入(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 {