public class Test {
public static void main(String[] args) {
Field[] fields = CompanyA.class.getDeclaredFields();
for(Field f : fields){
Class t = f.getType();
System.out.println("field name : " + f.getName() + " , type : " + t);
[/code]
[code lang=”java”]
field name : orgName , type :class java.lang.String
field name : count , type :int
field name : comments , type :interface java.util.List
field name : branches , type :interface java.util.Set
field name : extra , type :interface java.util.Map
[/code]
2.获取指定数据类型的字段
下面的例子会获取所有List类型的字段。
Test.java
[code lang=”java”]
package com.mkyong.test;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class TestAbc {
public static void main(String[] args) {
List<String> list = getFieldNameWithListDataType();
for(String data : list){
System.out.println("List : " + data);
private static List<String> getFieldNameWithListDataType(){
List<String> result = new ArrayList<>();
//CompanyA, refer 1.1
Field[] fields = CompanyA.class.getDeclaredFields();
for(Field f : fields){
// use equals to compare the data type.
if(f.getType().equals(List.class)){
result.add(f.getName());
//for other data type
//Map
//if(f.getType().equals(Map.class))
//Set
//if(f.getType().equals(Set.class))
//primitive int
//if(f.getType().equals(int.class))
//if(f.getType().equals(Integer.TYPE))
//primitive long
//if(f.getType().equals(long.class))
//if(f.getType().equals(Long.TYPE))
return result;
[/code]
[code lang=”java”]comments[/code]
对于一些基本数据类型像int,你可以对比一下使用int.class或Integer.TYPE。
References
1.
Oracle : Java Reflection examples
2.
Oracle : Class – getDeclaredFields Javadoc
原创文章,转载请注明:
转载自
并发编程网 – ifeve.com
本文链接地址:
Java – 获取类中特定数据类型的字段
Google Guava官方教程(中文版)
1,035,881 人阅读
Java NIO系列教程(一) Java NIO 概述
735,022 人阅读
Java NIO 系列教程
496,264 人阅读
Java并发性和多线程介绍目录
474,405 人阅读
Java NIO系列教程(十二) Java NIO与IO
400,623 人阅读
Java NIO系列教程(六) Selector
347,611 人阅读
Java NIO系列教程(三) Buffer
346,598 人阅读
Java NIO系列教程(二) Channel
338,419 人阅读
69道Spring面试题和答案
334,550 人阅读
Java8初体验(二)Stream语法详解
309,420 人阅读
并发框架Disruptor译文
288,295 人阅读
Netty 5用户指南
241,747 人阅读
[Google Guava] 2.3-强大的集合工具类:ja...
228,705 人阅读
[Google Guava] 3-缓存
227,187 人阅读
《Storm入门》中文版
224,193 人阅读
面试题
222,336 人阅读
聊聊并发(三)Java线程池的分析和使用
219,004 人阅读
Java NIO系列教程(八) SocketChannel
210,990 人阅读
[Google Guava] 1.1-使用和避免null
208,799 人阅读
如何创建并运行java线程
196,328 人阅读