Java反射—Field类使用

本文介绍Java反射中的Field类,用于动态访问和操作类或对象的属性。Field类提供get、set方法来获取和设置字段值,getDeclaringClass获取定义字段的类,getName获取字段名,getType获取字段类型等。使用时需要注意setAccessible(true)方法来允许访问private字段,否则可能抛出IllegalAccessException。此外,还提到了通用toString方法的制作以及java.lang.reflect.Array类在处理数组时的应用。
摘要由CSDN通过智能技术生成

Field作为反射中对应类或对象中的域或者叫做属性的操作类,除了我前一篇文章中的得到名字和类型等,Field的作用不限于此。

Java SE 8的Docs这样说:A Field provides information about, and dynamic access to, a single field of a class or an interface. The reflected field may be a class (static) field or an instance field.

简单理解就是:我们可用通过Field类对类或对象的field进行动态操作。

关于Field的一些方法:
返回值 名字和参数 作用
Object get(Object obj) 返回这个object对应field字段的Object
xxx getXXX(Object obj) 同上,不过XXX可以是Int,Char,Boolean等
void set(Object obj, Object value) 设置obj对象的调用方法的这个field的值为value
void setXXX(Object obj, XXX value) 设置特定类型值,例setInt(Object obj,int value)
Class getDeclaringClass() 返回定义中的Class对象
String getName() 得到名字的字符串
int getModifier() 返回一个修饰符的值
Class getType() 返回这个field的对象Class
void setAccessible(boolean flag) 设置是否允许set get
boolean isAccessible() 查看field是否允许set和get。
… … …
其他的可以去Java的官方文档去查看。https://docs.oracle.com/javase/8/docs/api/

简单案例:

package io.ilss.reflection;

/**
 * className User
 * description User
 *
 * @author feng
 * @version 1.0
 * @date 2019-01-26 19:11
 */
public class User {
    private String username;
    private String password;
    private int sex;
    public String address; //注意这个是public

    public User() {
    }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    
    ...//getter setter method
}
package io.ilss.reflection;

import java.lang.annotation
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值