이 글의 내용은 Java Bean과 Map을 서로 변환하는 방법에 관한 것입니다. (코드), 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Apache의 BeanUtils Bean 도구 클래스는 매우 강력하며 기본적으로 Bean 작업의 모든 방법을 다룹니다. 여기서는 두 가지 측면에 대해 이야기하겠습니다. 하나는 Bean으로 변환되는 것이고 다른 하나는 Map으로 변환되는 것입니다. Bean to Map은 실제로 Java의 동적 반사 기술을 사용하므로 어떤 종류의 Bean이든 동적을 통해 변환될 수 있습니다. 분석은 Map 객체가 되지만 전제 조건은 필드가 코딩 사양이기도 한 카멜 표기법을 준수해야 한다는 것입니다. Map to Bean도 Reflection을 통해 Bean으로 동적으로 구문 분석됩니다. Java의 Reflection은 실제로 매우 중요합니다. 우리가 사용하는 많은 도구 클래스에 존재합니다. 이를 사용할 수 있어야 할 뿐만 아니라 더 중요한 것은 직접 작성하여 구현하는 것이 가장 좋습니다. 이해가 깊어질 것입니다.# 🎜🎜#
Apache BeanUtils를 사용하여 Bean을 Map으로 변환코드 구현#🎜🎜 #/**
* 用apache的BeanUtils实现Bean covert to Map
* @throws Exception
*/
public static void beanToMap() throws Exception {
User user=new User();
Map<String,String> keyValues=null;
user.setPassWord("password");
user.setComments("test method!");
user.setUserName("wang shisheng");
user.setCreateTime(new Date());
keyValues=BeanUtils.describe(user);
LOGGER.info("bean covert to map:{}", JSONObject.toJSON(keyValues).toString());
}
# 🎜🎜#
Map을 변환하려면 Apache BeanUtils를 사용하세요. to Bean#🎜 🎜#
/**
* 用apache的BeanUtils实现Map covert to Bean
* @throws Exception
*/
public static void mapToBean() throws Exception {
Map<String,String> keyValues=new HashMap<>();
User user=new User();
keyValues.put("sessionId","ED442323232ff3");
keyValues.put("userName","wang shisheng");
keyValues.put("passWord","xxxxx44333");
keyValues.put("requestNums","34");
BeanUtils.populate(user,keyValues);
LOGGER.info("map covert to bean:{}", user.toString());
}
테스트 결과#🎜🎜 #
Bean을 Map으로 변환하고 Bean을 Map으로 작성하는 BeanUtils 구현 이해하기
#🎜 Code###코드 구현#🎜 🎜### ## ####/** * 应用反射(其实工具类底层一样用的反射技术) * 手动写一个 Bean covert to Map */ public static void autoBeanToMap(){ User user=new User(); Map<String,Object> keyValues=new HashMap<>(); user.setPassWord("password"); user.setComments("test method!"); user.setUserName("wang shisheng"); user.setUserCode("2018998770"); user.setCreateTime(new Date()); Method[] methods=user.getClass().getMethods(); try { for(Method method: methods){ String methodName=method.getName(); //反射获取属性与属性值的方法很多,以下是其一;也可以直接获得属性,不过获取的时候需要用过设置属性私有可见 if (methodName.contains("get")){ //invoke 执行get方法获取属性值 Object value=method.invoke(user); //根据setXXXX 通过以下算法取得属性名称 String key=methodName.substring(methodName.indexOf("get")+3); Object temp=key.substring(0,1).toString().toLowerCase(); key=key.substring(1); //最终得到属性名称 key=temp+key; keyValues.put(key,value); } } }catch (Exception e){ LOGGER.error("错误信息:",e); } LOGGER.info("auto bean covert to map:{}", JSONObject.toJSON(keyValues).toString()); }### ######테스트 결과### ## ##### 🎜🎜 #
위 내용은 Java Bean과 Map을 서로 변환하는 방법은 무엇입니까? (암호)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!