首页 > 其他分享 >ObjectFactory2反射

ObjectFactory2反射

时间:2024-09-14 14:58:06浏览次数:8  
标签:反射 String helper method Person ObjectFactory2 public name


package com.shrimpking.t6;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Shrimpking
 * @create 2024/9/12 18:06
 */
public class Person
{
    private String name;

    public Person(){
        this("匿名构造");
    }

    public Person(String name){
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public void run(int meters){
        System.out.printf("%s跑了%d米%n",this.name,meters);
    }

    @Override
    public String toString()
    {
        return "Person{" + "name='" + name + '\'' + '}';
    }

    private void helper(){
        System.out.println("私有辅助方法");
    }
}
package com.shrimpking.t6;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Shrimpking
 * @create 2024/9/12 18:33
 */
public class ObjectFactory2
{
    public static void main(String[] args)
    {
        try
        {
            Class<?> clz = Class.forName("com.shrimpking.t6.Person");
            //获取一个参数的构造方法
            Constructor oneArgCons = clz.getConstructor(String.class);
            Object obj = oneArgCons.newInstance("zhang");
            //获取 run方法的对象
            Method method = clz.getMethod("run", int.class);
            //调用run
            method.invoke(obj,1000);

            //获取helper 方法的对象
            method = clz.getDeclaredMethod("helper");
            //helper方法是私有方法,正常时不可调用
            // 通过设置可见性 ,来访问
            method.setAccessible(true);
            method.invoke(obj);

        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}

标签:反射,String,helper,method,Person,ObjectFactory2,public,name
From: https://blog.51cto.com/u_15356972/12016807

相关文章

  • 【JavaSE系列】反射机制
    目录前言一、概述二、获取Class对象三、反射构造方法1.获取构造方法2.获取修饰符、名称和形参3.创建对象四、反射成员变量 1.获取成员变量2.获取修饰符、名称和类型3.赋值/获取值五、反射成员方法1.获取成员方法2.获取修饰符、形参、返回值和异常3.......
  • 反射&动态代理
    1.反射1.1反射的概述:**专业的解释(了解一下):**是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。**通俗的理解:(掌握)**......
  • 反射获取构造器、成员方法、成员变量
    目录一、反射    1.反射的概述    2.反射的作用二、获取Class类对象的方式三、反射获取构造方法并使用    1.Class类获取构造方法对象的方法    2.Constructor类用于创建对象的方法四、反射获取成员变量并使用    1.Class类......
  • Java反射语法
    1.反射1.1反射的概述【理解】反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。1.2获取Class类对象的三种方式【应用】三种......
  • 单元测试,Junit,反射,注解(元注解,自定义注解,解析注解),动态代理
    目录一、单元测试二、反射1.认识反射2.获取类3.获取类的构造器4.获取类的成员变量5.获取类的成员方法6.作用三、注解1.概述、自定义注解2.元注解3.注解的解析四、动态代理1.概述2.使用代理的好处一、单元测试单元测试就是针对最小的功能单元(方法),编写测试代码对......
  • Java中的元编程:使用反射与代理模式实现代码的动态增强
    Java中的元编程:使用反射与代理模式实现代码的动态增强大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,元编程是指在程序运行时对程序进行修改和扩展的技术。反射和代理模式是实现Java元编程的两种常用技术。本文将探讨如何使用反射与代理......
  • Java 反射机制
    目录一.概述二.反射的特点三.反射主要应用四.反射注意事项五.代码示例详解1.解析图:2.获取字节码对象3.通过反射获取构造函数并创建对象4.通过反射获取对象字段信息5.通过反射获取方法并执行6.通过反射获取注解信息六.总结1.获取Class字节码对象方式......
  • 史上最详细的反射
    反射编程语言的分类:​动态语言:​非动态语言:java​Person:​属性:name,age,sex;​方法:eat(),drink(),play()反射的概述:反射就是从类里拿东西通俗的理解:利用反射创建的对象可以无视修饰符调用类里面的内容可以跟配置文件结合起来使用,把要创建的对象信息和方法写在......
  • Java学习 - 反射&动态代理
    马上就要把Java的基础部分更新完了,后面会更新一些别的内容,也会多学习一些别的东西提升一下自己。加油加油加油!1.反射1.1反射的概述:**专业的解释(了解一下):**是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意......
  • Java的反射技术reflect
     Java的反射技术实现方式是程序员构建代码的逆向过程。反编译技术和代码混淆技术也涉及到程序源代码的反射构建。Java的反射reflect基于类的字节码文件构建中间语言代码文件。基于Java类的中间语言并不在于应用程序的可读性。Java的程序源代码编译之后形成.class字节码文件。字......