集册 Java实例教程 从类中获取所有字段

从类中获取所有字段

欢马劈雪     最近更新时间:2020-01-02 10:19:05

627
从类中获取所有字段

/**

 * 

 * Funf: Open Sensing Framework

 * Copyright (C) 2010-2011 Nadav Aharony, Wei Pan, Alex Pentland.

 * Acknowledgments: Alan Gardner

 * Contact: nadav@media.mit.edu

 * 

 * This file is part of Funf.

 * 

 * Funf is free software: you can redistribute it and/or modify

 * it under the terms of the GNU Lesser General Public License as

 * published by the Free Software Foundation, either version 3 of

 * the License, or (at your option) any later version.

 * 

 * Funf is distributed in the hope that it will be useful, but

 * WITHOUT ANY WARRANTY; without even the implied warranty of

 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 * See the GNU Lesser General Public License for more details.

 * 

 * You should have received a copy of the GNU Lesser General Public

 * License along with Funf. If not, see <http://www.gnu.org/licenses/>.

 * 

 */

import java.lang.annotation.Annotation;//来自 时代Java公众号 - N o w J a  v a . c o m

import java.lang.reflect.Field;

import java.util.List;


public class Main{

    public static void main(String[] argv) throws Exception{

        List fields = java.util.Arrays.asList("asdf","nowjava.com");

        Class type = String.class;

        System.out.println(getAllFields(fields,type));

    }

    /**

     * @param fields

     * @param type

     * @return

     */

    public static List<Field> getAllFields(List<Field> fields, Class<?> type) {

        return getAllFieldsWithAnnotation(fields, type, null);

    }
    /**
    nowjava - 时  代  Java
    **/

    public static List<Field> getAllFieldsWithAnnotation(

            List<Field> fields, Class<?> type,

            Class<? extends Annotation> annotationType) {

        for (Field field : type.getDeclaredFields()) {

         
展开阅读全文