Java中的反射创建一个新实例,并将引用变量类型设置为新的实例类名称

党均
• 阅读 2184
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Foo {

    public void printAMessage() {
    System.out.println(toString()+":a message");
    }
    public void printAnotherMessage(String theString) {
        System.out.println(toString()+":another message:" + theString);
    }

    public static void main(String[] args) {
        Class c = null;
        try {
            c = Class.forName("Foo");
            Method method1 = c.getDeclaredMethod("printAMessage", new Class[]{});
            Method method2 = c.getDeclaredMethod("printAnotherMessage", new Class[]{String.class});
            Object o = c.newInstance();
            System.out.println("this is my instance:" + o.toString());
            method1.invoke(o);
            method2.invoke(o, "this is my message, from a config file, of course");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException nsme){
            nsme.printStackTrace();
        } catch (IllegalAccessException iae) {
            iae.printStackTrace();
        } catch (InstantiationException ie) {
            ie.printStackTrace();
        } catch (InvocationTargetException ite) {
            ite.printStackTrace();
        }
    }
}

Java中的反射创建一个新实例,并将引用变量类型设置为新的实例类名称

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
java中多态的实现机制
多态的概念:  简单来说就是事物在运行过程中存在的不同状态,即父类或接口定义的引用变量指向子类或具体实现类的实例对象。程序调用方法在运行期才进行动态绑定,而不是引用变量的类型中定义的方法。多态存在的前提:1、存在继承关系,子类继承父类;2、子类重写父类的方法;3、父类引用指向子类对象。具体实例:1、定义一个父类:Animal
Wesley13 Wesley13
3年前
java成员变量的初始化
类变量(static变量,不需要实例化对象也可以引用)实例变量(非static变量,需要实例化对象)局部变量(类的成员函数中的变量)初始化方式:构造函数初始化变量声明时初始化代码块初始化java自动初始化(在构造函数执行之前执行) java保证所有变量被使用之前都是经过初始化的(声明并且定义过,被赋值
xiguaapp xiguaapp
4年前
jvm
类的加载连接与初始化加载:查找并加载类的二进制数据连接验证:确保被加载的类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值解析:把类中的符号引用转换成为直接引用初始化:为类的静态变量赋予正确的初始值主动使用创建类的实例访问某个类或接口的静态变量,或者对该静态变量赋值调用类的
Stella981 Stella981
3年前
Spring IOC 练习
练习题实验一|通过IOC容器创建对象,并为属性赋值实验二|通过Bean的类型从IOC中获取bean的实例实验三3.1使用构造器在IOC中创建bean3.2通过p名称空间为bean赋值实验四4.1正确的为各种属性赋值测试使用nu11值、引用类型赋值(引用其他bean、引用内部bean)集合类型赋值(Lis
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
MongoEngine文档 新手教程 Document实例
Document实例创建一个新的document对象,创建一个相关document类的实例,可以在字段的构造器中赋值。你可以在任何document里面的字段设置值;\python\ 1.\ page  Page(title"Test Page")2.\ page.title3
Wesley13 Wesley13
3年前
Java 进程的建立方法
Java进程的建立方法在JDK中,与进程有直接关系的类为Java.lang.Process,它是一个抽象类。在JDK中也提供了一个实现该抽象类的ProcessImpl类,如果用户创建了一个进程,那么肯定会伴随着一个新的ProcessImpl实例。同时和进程创建密切相关的还有ProcessBuilder,它是
Easter79 Easter79
3年前
Swift3.0 类和结构体的选择
结构体实例总是通过值传递,类实例总是通过引用传递先说说值类型和引用类型的区别值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝在Swift中,所有的结构体和枚举类型都是值类型。这意味着它们的实例,以及实例中所包含的任何值类型属性,在代码中传递的时候都会被复制。引用类型在被赋予到一个变量、常
Wesley13 Wesley13
3年前
Java反射机制及适用场景
什么是Java反射机制?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。反射的适用场景是什么?1.当你做一个软件可以安装插件的功能,你连插件的类型名称都不知道,你怎么实例化这个对象呢
Stella981 Stella981
3年前
C#中Activator.CreateInstance()方法用法分析
本文实例讲述了C中Activator.CreateInstance()方法用法。Activator类包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。C在类工厂中动态创建类的实例,所使用的方法为:1.Activator.CreateInstance(Type)2.Activator.
党均
党均
Lv1
不经一番寒彻骨,怎得梅花扑鼻香。
文章
4
粉丝
0
获赞
0