通过反射获取class文件中的构造方法,运行构造方法

/*
 *  通过反射获取class文件中的构造方法,运行构造方法
 *  运行构造方法,创建对象
 *    1、获取class文件对象
 *    2、从class文件对象中,获取需要的成员
 *
 *  Constructor 描述构造方法对象类
 */

1、person类,用于测试获取无参的构造方法

package cn.itcast.demo1;

public class Person {
    public String name;
    private int age;

    /*static{
        System.out.println("静态代码块");
    }*/

    public Person(){
    }

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

    private Person(int age,String name){
        this.name = name;
        this.age = age;
    }

    public void eat(){
        System.out.println("人吃饭");
    }

    public void sleep(String s, int a,double d){
        System.out.println("人在睡觉"+s+"....."+a+"....."+d);
    }
    private void playGame(){
        System.out.println("人在打游戏");
    }

    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

2、获取无参构造方法测试类

public class ReflectDemo1 {
    public static void main(String[] args) throws Exception {

        Class c = Class.forName("cn.itcast.demo1.Person");
        //使用class文件对象,获取类中的构造方法
        //  Constructor[]  getConstructors() 获取class文件对象中的所有公共的构造方法像person类中构造方法用private修饰的是获取不到的
        /*Constructor[] cons = c.getConstructors(); //获取到的是多个构造方法
        for(Constructor con : cons){
            System.out.println(con);
        }*/
        //获取指定的构造方法,空参数的构造方法
        Constructor con =  c.getConstructor();//获取指定的构造方法
        //运行空参数构造方法,Constructor类方法 newInstance()运行获取到的构造方法
        Object obj = con.newInstance();
        System.out.println(obj.toString());
    }
}

原文地址:https://www.cnblogs.com/a8457013/p/8134034.html

时间: 2024-08-14 00:30:25

通过反射获取class文件中的构造方法,运行构造方法的相关文章

Spring 获取propertise文件中的值

Spring 获取propertise文件中的值 Spring 获取propertise的方式,除了之前的博文提到的使用@value的注解注入之外,还可以通过编码的方式获取,这里主要说的是要使用EmbeddedValueResolverAware接口的使用. 一.准备propertise文件 在资源文件夹下面建立好要测试需要的app.propertise文件,里面写几条测试数据,本文主要如图数据. 二.准备配置文件 <?xml version="1.0" encoding=&qu

springboot入门_获取属性文件中的值

在上一篇文章中,记录了用springboot实现输出一个hello world到前台的程序,本文记录学习springboot读取属性文件中配置信息. 框架属性文件(application.properties) 创建一个springboot项目,并引入相关依赖,POM文件如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.or

AS3获取SWF文件中AS链接

游戏中经常使用到SWF美术,但SWF文件中,会有多个元件,每个元件对应一个指定AS链接,一个元件还会有多个图层.在实际操作中,会出现要求显示一个指定元件,并在该动画资源中,有的动画要求加鼠标事件,有的则不加任何事件,即指定图层的调用.既要求过场动画的欢洽,又要求交互事件的鼠标点击时的动画效果以及配音,这里提供一个简单范例,实现代码如下: SWF文件加载类,LoaderSwf: 1 package 2 { 3 import flash.display.Bitmap; 4 import flash.

反射获取一个方法中的参数名(不是类型)

一般来说,通过反射是很难获得参数名的,只能取到参数类型,因为在编译时,参数名有可能是会改变的,需要在编译时加入参数才不会改变. 使用注解是可以实现取类型名(或者叫注解名)的,但是要写注解,并不方便. 观察Spring mvc框架中的数据绑定,发现是可以直接把http请求中对应参数绑定到对应的参数名上的,他是怎么实现的呢? 先参考一下自动绑定的原理:Spring源码研究:数据绑定 在getMethodArgumentValues方法中,MethodParameter[] parameters =

[转]java 通过反射获取类的全局变量、方法、构造方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.str; public class ZiFuChuan {          public static String ss = "全局变量!!!!!!";     String s2 = null;     public int aa = 1 ;     int aa2;     double dou = 1.1;     Double d = new Dou

java 利用反射获取类对象中List的值

Field[] fields = Object.getClass().getDeclaredFields();//Object是已经被赋值的对象实例 for (Field field : fields) {if (!field.isAccessible()) { field.setAccessible(true); } if (List.class.isAssignableFrom(field.getType())) { Type t = field.getGenericType(); if (

spring 通过@Value 获取properties文件中设置了属性 ,与@Value # 和$的区别

spring 获取 properties的值方法 在spring.xml中配置 很奇怪的是,在context-param 加载的spring.xml 不能使用 ${xxx} 必须交给DispatcherServlet 管理的 springMVC.xml才能用? 要交给springMVC的DispatcherServlet去扫描,而不是spring的监听器ContextLoaderListener去扫描,就可以比较方便的使用"${xxx}"去注入. 1.使用 $ 获取属性 @Value(

Spring获取properties文件中的属性

1.前言 本文主要是对这两篇blog的整理,感谢作者的分享 Spring使用程序方式读取properties文件 Spring通过@Value注解注入属性的几种方式 2.配置文件 application.properties socket.time.out=1000 3.使用spring代码直接载入配置文件,获取属性信息 代码如下: Resource resource = new ClassPathResource("/application.properties"); Propert

php 获取一个文件中return array() 的值

<?php return array( 'name' => 'andy', 'sex' => 'male' ); ?> <?php $set = include("test.php"); print_r($set);exit; ?>