簡體   English   中英

使用Reflection API Java獲取私有字段值

[英]Get private field values using Reflection API java

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.UnknownHostException;
import java.util.ArrayList;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;

public class MongoTest {

    /**
     * @param args
     * @throws UnknownHostException 
     * @throws ClassNotFoundException 
     * @throws IllegalAccessException 
     * @throws IllegalArgumentException 
     */
    public static void main(String[] args) throws UnknownHostException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException {
        Employee employee= new Employee();
        employee.setFirstname("Durga Dutt");
        employee.setLastname("Pandey");
        employee.setAge(28);
        employee.setSalary(100035);

        Class<?> cl= Class.forName("Employee");
        Field[] fields= cl.getDeclaredFields();

        for(int i=0;i<fields.length;i++)
        {
            System.out.println(fields[i].get(employee));
        }

    }

}

上面的程序返回的是公共字段的值,但不適用於私有成員。 我在POJO類中聲明了getter和setter方法。

有任何想法嗎 ?

要獲取私有字段的值,應使用setAccessible將其設置為可訪問。

getDeclaredFields將允許您查看私有字段的名稱,而不是值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM