Java反射(二)

作者: Sandy_678f | 来源:发表于2018-04-20 17:02 被阅读0次

package reflectiondemo;

public class TwoString {

    private String m_s1="a", m_s2="b";

//    无参数构造函数
    public  TwoString(){

    }

//    含参数构造函数
    public TwoString(String s1, String s2){
        this.m_s1 = s1;
        this.m_s2 = s2;
    }

    public void setM_s1(String s1){
        this.m_s1 = s1;
    }

    public void setM_s2(String s2){
        this.m_s2 = s2;
    }

    public String getM_s1(){
        return this.m_s1;
    }

    public String getM_s2(){
        return this.m_s2;
    }
}

反射调用一:调用无参构造函数

package reflectiondemo;

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

public class test {

    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {

//        利用反射机制创建对象:无参构造函数
        Constructor cons = TwoString.class.getConstructor();
        TwoString ts = (TwoString) cons.newInstance();

//        利用反射机制操作方法
        Class aclass = Class.forName("reflectiondemo.TwoString");
        Method method = aclass.getMethod("setM_s1", String.class);
        method.invoke(ts, "abcdefghijklmn");
        System.out.println(ts.getM_s1());

    }
}

反射调用二:调用含参构造函数

package reflectiondemo;

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

public class test {

    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {

//        利用反射机制创建对象:含参构造函数
        Class[] types = new Class[] {String.class, String.class};
        Class aclass = Class.forName("reflectiondemo.TwoString");
        Constructor cons = aclass.getConstructor(types);
        String[] args1 = new String[] {"a", "b"};
        TwoString ts = (TwoString) cons.newInstance(args1);

//        利用反射机制操作方法
        aclass = Class.forName("reflectiondemo.TwoString");
        Method method = aclass.getMethod("setM_s1", String.class);
        method.invoke(ts, "abcdefghijklmn");
        System.out.println(ts.getM_s1());
    }
}

相关文章

  • 博客地址

    java注解-01、java注解-02、Git面试资源java反射-01、java反射-02、java反射-03为...

  • Java反射(二)

    类 反射调用一:调用无参构造函数 反射调用二:调用含参构造函数

  • Java反射机制入门

    Java反射机制入门 一、什么是反射 JAVA反射机制(The JAVA reflection mechanism...

  • Java基础之反射

    Java基础之—反射(非常重要)Java中反射机制详解Java进阶之reflection(反射机制)——反射概念与...

  • 反射之一

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • 反射之二

    总结内容源自一下文章粗浅看java反射机制反射机制应用实践谈谈java反射机制Java Reflection(反射...

  • Java基础之反射

    Java基础之反射 反射基本介绍 反射的使用通过反射调用属性和方法通过反射获取配置文件 反射基本介绍 Java反射...

  • Java反射

    一. Class类 二. Java动态加载类 三. Java获取方法信息 四. Java方法反射的基本操作

  • JAVA-Reflect

    一、Class类的使用 二、Java动态加载类 三、Java获取方法信息 四、Java方法的反射

  • Java 反射机制

    Java 反射机制 什么是反射 Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 ...

网友评论

    本文标题:Java反射(二)

    本文链接:https://www.haomeiwen.com/subject/xylzkftx.html