首页 > 其他分享 >获取成员变量并赋值使用

获取成员变量并赋值使用

时间:2024-08-23 21:26:50浏览次数:7  
标签:f2 变量 成员 System 获取 println 赋值

package com.shujia.day21;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

/*
    反射获取成员变量并赋值使用
    
    获取所有成员 通过类的字节码文件对象获取
		getFields           只能获取公共的成员变量
		getDeclaredFields   获取私有的成员变量
    获取单个成员
		getField,getDeclaredField   同上
    修改成员的值 修改私有的需要暴力访问f2.setAccessible(true);
		set(Object obj,Object value) 通过获取的成员变量修改,需要指定是哪个类的
		将指定对象变量上此 Field 对象表示的字段设置为指定的新值。

 */
public class FieldDemo1 {
    public static void main(String[] args) throws Exception {
        //先通过反射将对象创建出来
        //创建类的字节码文件对象
        Class<?> studentClass = Class.forName("com.shujia.day21.Student");
        //通过类的字节码文件对象获取类的构造方法
        Constructor<?> c1 = studentClass.getConstructor();
        //通过获取的构造方法创建类的对象,创建这个对象的目的是访问成员的,被访问的成员变量是一个独立的个体,使用时需要指定哪一个类
        Object o = c1.newInstance(); 

        //反射获取成员变量
        //getField 只能获取公共的成员变量
        Field f1 = studentClass.getField("phoneNum");
        System.out.println(f1);
//        Field f2 = studentClass.getField("name");
//        System.out.println(f2);
        //获取私有的成员变量
        Field f2 = studentClass.getDeclaredField("name");
        System.out.println(f2);

        //如何使用反射获取的成员变量呢?
        f1.setInt(o,110);
        System.out.println("------------------------------------------");
        System.out.println(o);
        System.out.println("------------------------------------------");
        f2.setAccessible(true);
        f2.set(o,"魏一民");
        System.out.println(o);



    }
}

标签:f2,变量,成员,System,获取,println,赋值
From: https://www.cnblogs.com/qiwei-bigdata/p/18377119

相关文章

  • 获取一个字节码文件对应的Class对象
    packagecom.shujia.day21;/*如何获取一个字节码文件(编译后得到的.class后缀的文件)对应的Class对象一个字节码文件,在内存中只会存在一个对应的Class类对象*/publicclassClassDemo1{publicstaticvoidmain(String[]args)throwsException{//......
  • 【python2-1】变量
    变量的创建price=10.5weight=7.5money=price*weightprint('总消费是%.2f元'%money)变量的修改year=2023print(year)year=2024print(year)money=10money='10元'print(money)快速注释:CTRL+左斜杠/price=10.5weight=7.5money=pr......
  • jenkins内置环境变量大全
    Jenkins提供了许多内置环境变量,帮助你在Jenkins作业中获取关键信息。以下是一些常见的Jenkins内置环境变量:1.BUILD_NUMBER当前构建的序号(构建次数)。例子:BUILD_NUMBER=152.BUILD_ID当前构建的唯一标识符。例子:BUILD_ID=2023-08-22_11-47-593.BUILD_DISPLAY_NAME......
  • 【OpenHarmony】openharmony移植到RK3568------获取源码编译OpenHarmony源码
    一、源码获取源码获取有好几种方式,在这里直接在镜像网站下载源码,点击下面连接下载全量版本的OpenHarmony4.1https://repo.huaweicloud.com/openharmony/os/4.1-Release/code-v4.1-Release.tar.gz将源码放到自己建立的目录下解压,我放入的是这个目录/home/wzz/work/0H4.1......
  • 指针以及指针变量(一)(整形、字符)
    今天简单介绍一些关于指针的知识,达到对指针的初步了解。因为数组跟函数的指针稍微有些杂乱,今天写介绍关于整形与字符的。函数与数组的会在整理好后一一价绍。地址地址也就是我们常说的指针,在讲解指针前先讲个生活中的小例子吧。学生小明是个住校生,他的朋友来他的学校找......
  • 使用 MySQL Shell 获取 MySQL 诊断信息(译)
    收集全面的诊断信息可能会让人望而却步。知道要运行哪些查询以获取所需数据更像是一种艺术形式,而非其他什么。幸运的是,对于那些不太擅长艺术的人来说,MySQLShell使得获取这些信息变得更加容易。让我们来看一下。设置在我们开始之前,我们需要连接到一个MySQL实例。在本演示中,我......
  • PHP8面向对象快速入门二 构造函数 析构函数 静态变量 静态方法
    在PHP中,构造函数是一个特殊的方法,用于在创建对象时初始化对象的状态。构造函数在对象实例化时自动调用,以设置初始值或执行必要的准备工作。它可以接受参数,用于初始化对象的属性。构造函数的特点自动调用:构造函数在创建对象时自动调用。你不需要显式调用构造函数,它会在实例......
  • 阿里dataworks通过pyodps 3获取表元数据及质量稽核
    用途:本脚本的主要作用就是获取所属工作空间中表字段信息核心脚本:本逻辑主要需要五个核心脚本:00_task_meta_setup_time#用于创建表及设置odps的启动时间01_task_meta_fields_move#搬迁数据02_task_meta_tables#表元数据获取及数据量统计03_task_meta_fields_parallel......
  • 一文彻底了解ES6中的var、let、const基本用法以及暂时性死区和变量提升的区别
             ECMAScript变量是松散类型的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一个用于保存任意值的命名占位符。有三个关键字可以声明变量:var、let、const。其中var在ECMAScript的所有版本中都可以使用,而 const和let只能在ECMAScript6及更......
  • MySQL 持久化系统变量
    setpersist会将变量持久化到文件mysqld-auto.cnf文件中,该文件位于数据目录下。resetpersist会移除mysqld-auto.cnf文件中持久化的变量。 MySQL可以在运行时持久化全局系统变量。虽然许多系统变量可以在启动时通过my.cnf配置文件设置,或在运行时使用set语句设置,但这......