java中使用反射机制获取实体类集合的某个属性值
来源:互联网 发布:linux scp定义算法 编辑:程序博客网 时间:2024/05/28 23:19
需求
今天遇到一个需求。需要从几个对象的集合中取出对象的某些属性。怎么办呢?哪就利用反射机制写个方法吧。
思路
入参
首先是几个对象的集合,那么方法的入参就是 list<?>
因为是不同对象所以还是得用泛型。用反射当然得有 参数Class<?>
最后还得有第三个参数就是需要获取的属性名。
出参
出参比较容易,就搞个String好了
实现
public static String getStringAbel(List<?> o, Class<?> c, String field) { StringBuffer result = new StringBuffer(); if (StringUtils.isNoneBlank(field)) { Field[] fields = c.getDeclaredFields(); int pos; for (pos = 0; pos < fields.length; pos++) { if (field.equals(fields[pos].getName())) { break; } } for (Object o1 : o) { try { fields[pos].setAccessible(true); result.append(fields[pos].get(o1) + ","); } catch (Exception e) { System.out.println("error--------" + "Reason is:" + e.getMessage()); } } } return result.deleteCharAt(result.length() - 1).toString(); }//调用 public static void main(String[] args) { List<Person> personList = new ArrayList<>(); Person person = new Person(); person.setName("abel"); person.setAge(16); Person person2 = new Person(); person2.setName("abel2"); person2.setAge(17); personList.add(person); personList.add(person2); System.out.println(getStringAbel(personList, Person.class, "name")); }
关于实现中的for 循环为什么不用 java8的 stream 呢?因为stream 就循环来说 和for 的效率大致差不多。反而 for 会使逻辑更清晰一点。stream 的优势在于对数据的分组,过滤,等方面。
具体观点请看:http://soujava.com/java8%E4%B8%AD%E4%BD%BF%E7%94%A8stream%E6%B5%81%E5%92%8Cfor%E5%BE%AA%E7%8E%AF%E5%88%86%E5%88%AB%E5%AF%B9%E6%95%B0%E6%8D%AE%E9%9B%86%E5%90%88%E9%81%8D%E5%8E%86%E7%9A%84%E5%B7%AE%E5%BC%82/
本文参考:http://blog.csdn.net/xiaoxian8023/article/details/24109185?utm_source=tuicool
阅读全文
0 0
- java中使用反射机制获取实体类集合的某个属性值
- 使用java反射机制遍历实体类的属性和类型以及值
- 通过反射机制获取类集合的所有属性值
- java日期以及使用Java反射机制遍历实体类的属性和类型
- 使用Java反射机制遍历实体类的属性和类型
- Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值
- 得到某个类的静态属性 java反射机制
- java中使用反射获取pojo(实体)类的所有字段值
- java中使用反射获取pojo(实体)类的所有字段值
- java利用反射机制获取实体类属性自定义注解说明
- java使用反射机制根据属性名获取object对象指定属性的值
- 通过反射获取实体集合属性值并赋值给另一个实体集合
- 通过反射获取实体集合属性值并赋值给另一个实体集合
- java 利用反射机制的刀实体类的属性以及对属性操作
- 反射类的使用ReflectUtil(设置set和获取get某个类属性值)
- 反射类的使用ReflectUtil(设置set和获取get某个类属性值)
- java的反射机制--关于类中属性的反射。
- Java反射 获取某个类的属性值、字段名、注解等常用代码
- java 并发
- QT关于网络TCP通讯的记录(二)
- 四中更新uI方法代码示例
- sql中常用不常见函数部分总结
- 575. Distribute Candies
- java中使用反射机制获取实体类集合的某个属性值
- CC3200 学习
- 进程间通信 之 pipe(Linux)
- 冒泡排序
- 三步使用 JSON Server 模拟 API
- 微生物相关网络构建教程中文Microbial association network construction tutorial
- javax.net.ssl.SSLHandshakeException的解决办法
- js tab小程序
- typeof,松散相等性和严格相等性