通过反射机制访问某类的构造器
来源:互联网 发布:徐州管家婆软件 编辑:程序博客网 时间:2024/06/12 19:43
共有三种访问方法:
- 通过Class类对象调用newInstance()方法,可以访问某类的无参构造器;
- 通过Class类对象调用getConstructor()方法,可以获得某类的无参构造器;
- 通过Class类对象调用getConstructor(类参数)方法,可以获得某类的有参构造器(调用有参构造方法时依据方法签名来区别构造方法,传入的参数顺序不同会有不同的调用结果);
例子:通过反射机制访问构造器。
package com.cx.reflection;import java.lang.reflect.Constructor;class A { private int x; private String s; public A() { System.out.println("无参构造"); } public A(int x) { this.x = x; System.out.println("有参构造(int)"); } public A(int x, String s) { this.x = x; this.s = s; System.out.println("有参构造(int, String)"); } public A(String s, int x) { this.x = x; this.s = s; System.out.println("有参构造(String, int)"); } public String getS() { return s; } public void setS(String s) { this.s = s; } public int getX() { return x; } public void setX(int x) { this.x = x; }}public class TestClass { public static void main(String[] args) throws Exception { Class<?> c = Class.forName("com.cx.reflection.A"); A a = (A) c.newInstance(); System.out.println(a); Constructor<?> constructor = c.getConstructor(); a = (A) constructor.newInstance(); System.out.println(a); constructor = c.getConstructor(int.class); a = (A) constructor.newInstance(100); System.out.println(a); constructor = c.getConstructor(int.class, String.class); a = (A) constructor.newInstance(100, "cx"); System.out.println(a.getX() + ", " + a.getS()); constructor = c.getConstructor(String.class, int.class); a = (A) constructor.newInstance("cx", 100); System.out.println(a.getX() + ", " + a.getS()); }}
阅读全文
0 0
- 通过反射机制访问某类的构造器
- 通过Java反射机制构造类的对象
- 通过反射访问构造方法
- java反射机制 以及通过反射获得类的变量字段,方法,构造函数
- java反射机制 以及通过反射获得类的变量字段,方法,构造函数
- Java利用反射机制访问私有化构造器
- 通过反射构造一个类的实例
- 构造方法类的反射机制
- 通过反射访问构造方法(学习笔记)
- 反射第三步 : 通过反射获取某一个类的 构造器Constructor 并通过反射创建对象
- Java反射机制,通过对象访问调用类的私有成员属性或者方法
- 如何理解java中的依赖注入 通过构造函数和反射机制来实现的
- 通过反射机制创建一个构造方法中参数数量可变的对象
- 反射机制的概述和字节码对象的获取,通过反射获取构造方法并使用;通过反射获取成员变量并使用;通过反射获取私有成员变量并使用;通过反射获取成员方法并使用
- 利用Java反射机制输出一个类的内部构造
- Java通过反射机制使用非默认构造器创建对象
- 通过反射机制获得某个类中的属性,构造方法,方法
- java反射机制-通过无参构造实例化对象
- 安卓学习笔记(二):Activity 跟着API指南学习
- 嵌入式linux上测试远程服务器的某个端口是否可达
- 【FRDM-KW41Z学习笔记】使用KDS在FRDM-KW41Z开发板上运行Hello World
- C++第六次实验-矩阵求和
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- 通过反射机制访问某类的构造器
- 三篇文章了解 TiDB 技术内幕——说存储
- ThinkPHP二次开发步骤整理
- Struts2_基于XML配置方式实现对action的所有方法进行校验
- leetcode 343. Integer Break
- 嵌入式LinuxC编程之进程控制(三)
- Majority Element
- S5P4418 android 5.1 EC20 R2.0 PCIE接口调试记录
- lintcode刷题(python)--排列组合