我是靠谱客的博主 沉静鼠标,最近开发中收集的这篇文章主要介绍Java遍历实体类,实体类属性转换为url参数遍历Java实体类属性及值获取父类的属性及属性值,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
遍历Java
实体类属性及值
核心代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(HcodeRepository.class);
/**
*
* @Title: getPostParams
* @Description: 将实体类clazz的属性转换为url参数
* @param clazz 参数实体类
* @return
* String
*/
private String getPostParams(Object clazz) {
Field[] fields = clazz.getClass().getDeclaredFields();
StringBuilder requestURL = new StringBuilder();
try {
boolean flag = true;
String property, value;
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
// 允许访问私有变量
field.setAccessible(true);
// 属性名
property = field.getName();
// 属性值
value = field.get(clazz).toString();
System.out.println(property+":"+value);
}
} catch (Exception e) {
logger.error("参数为:" + clazz.toString());
}
return requestURL.toString();
}
示例
将查询参数封装为url
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(HcodeRepository.class);
/**
*
* @Title: getPostParams
* @Description: 将实体类clazz的属性转换为url参数
* @param clazz 参数实体类
* @return
* String
*/
private String getPostParams(Object clazz) {
// 遍历属性类、属性值
Field[] fields = clazz.getClass().getDeclaredFields();
StringBuilder requestURL = new StringBuilder();
try {
boolean flag = true;
String property, value;
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
// 允许访问私有变量
field.setAccessible(true);
// 属性名
property = field.getName();
// 属性值
value = field.get(clazz).toString();
String params = property + "=" + value;
if (flag) {
requestURL.append(params);
flag = false;
} else {
requestURL.append("&" + params);
}
}
} catch (Exception e) {
logger.error("URL参数为:" + clazz.toString());
}
return requestURL.toString();
}
获取父类的属性及属性值
注: 以下代码中使用Intellij IDEA
并使用了lombok
,可以使用get/set
替代@Data
注解;可以重写toString()
方法替代@ToString
注解;
可以使用构造方法,替代@AllArgsConstructor
注解。
TextMailDTO
父类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
/**
* @ClassName TextMailDTO
* @Description <br/> 文本邮件实体类
* @Author Dew
* @Date 2019/11/7 9:56
* @Version 1.0
**/
@Data
@ToString
@AllArgsConstructor
public class TextMailDTO {
/**
* 主题
*/
private String subject;
/**
* 文本内容
*/
private String text;
/**
* 接收者邮箱
*/
private String receiver;
}
info
子类
import lombok.Data;
/**
* @ClassName Info
* @Description <br/> 信息内容
* @Author Dew
* @Date 2019/12/3 10:03
* @Version 1.0
**/
@Data
public class Info extends TextMailDTO {
private String description;
public Info(String subject, String text, String receiver) {
super(subject, text, receiver);
}
public Info(String subject, String text, String receiver, String description) {
super(subject, text, receiver);
this.description = description;
}
}
- 实现获取父类属性及属性值的方法代码块
/**
* 获取父类的属性及属性值方法
*/
private String getAllFields(Object object) {
Class clazz = object.getClass();
List<Field> fieldList = new ArrayList<>();
while (clazz != null) {
Field[] fields = clazz.getDeclaredFields();
fieldList.addAll(new ArrayList<>(Arrays.asList(fields)));
clazz = clazz.getSuperclass();
}
StringBuilder requestURL = new StringBuilder();
try {
boolean flag = true;
String property, value;
for (int i = 0; i < fieldList.size(); i++) {
Field field = fieldList.get(i);
// 允许访问私有变量
field.setAccessible(true);
// 属性名
property = field.getName();
// 属性值
value = field.get(object).toString();
log.info(property + ":t {}", value);
}
} catch (Exception e) {
log.error("参数为:t{}", clazz.toString());
}
return requestURL.toString();
}
最后
以上就是沉静鼠标为你收集整理的Java遍历实体类,实体类属性转换为url参数遍历Java实体类属性及值获取父类的属性及属性值的全部内容,希望文章能够帮你解决Java遍历实体类,实体类属性转换为url参数遍历Java实体类属性及值获取父类的属性及属性值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复