我们先创建了一个Person类

package reflect;

public class Person {

public String name = "zhangsan";

public Person(){

System.out.println("person");

}

public Person(String name){

System.out.println(name);

}

public Person(String name,int password){

System.out.println("person name and password");

}

private Person(int i){

System.out.println("person list");

}

}

加载类的方法

package reflect;

public class Demo {

public static void main(String[] args) throws ClassNotFoundException {

/*

* 反射:加载类,获取类的字节码

*/

//方法一

Class clazz = Class.forName("reflect.Person");

//方法二

Class clazz2 = new Person().getClass();

//方法三

Class clazz3 = Person.class;

}

}

反射类的构造函数,可访问Person类,@Test是用junit来测试是否实现的

package reflect;

import java.awt.List;

import java.lang.reflect.Constructor;

import java.util.ArrayList;

import org.junit.Test;

public class Demo2 {

@Test

public void test() throws ClassNotFoundException, ReflectiveOperationException, SecurityException{

Class clazz = Class.forName("reflect.Person");

Constructor c = clazz.getConstructor(null);

Person p = (Person) c.newInstance(null);

System.out.println(p.name);

}

@Test

public void test2() throws Exception{

Class clazz = Class.forName("reflect.Person");

Constructor c = clazz.getConstructor(String.class);

Person p = (Person) c.newInstance("success");

System.out.println(p.name);

}

//访问私有

@Test

public void test3() throws Exception{

Class clazz = Class.forName("reflect.Person");

Constructor c = clazz.getDeclaredConstructor(int.class);

c.setAccessible(true);

Person p = (Person) c.newInstance(13);

System.out.println(p.name);

}

//创建对象的另外一种方式

@Test

public void test4() throws Exception{

Class clazz = Class.forName("reflect.Person");

Person p = (Person) clazz.newInstance();

System.out.println(p);

}

}

java反射类带构造函数_java中反射类的加载和构造函数相关推荐

  1. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  2. java中反射到底是什么_JAVA中反射是什么

    烧仙草VB JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息.首先我们先明确两个概念,静态编译和动态编译. ...

  3. java引用类的关键字_java中定义类通常使用的关键字有哪些

    下面四种 1) private 类中限定为private的成员,只能被这个类本身访问. 如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例. 2) default 类中不加任何访 ...

  4. java中string类面试题_java中String类的面试题大全含答案

    1.下面程序的运行结果是()(选择一项) String str1="hello"; String str2=new String("hello"); Syste ...

  5. java 所有类的超类_Java中所有类的超类Object

    Object的地位 在Java中所有的类都继承于Object类,但不用在声明一个类时显示的extends Object Object中几个重要的方法: 1.equals方法: 用于检测一个对象是否等于 ...

  6. java 中反射的使用_java中反射的基本使用

    fanShe.java package example5; class fanShe{ /*1.应用在一些通用性比较高的代码中. *2.后面学的框架,大多数都是应用框架来实现的. *3.在框架开发中, ...

  7. java中成员变量的加载时机_工作奇谈——JAVA高级特性之反射

    一.从问题入手 最近又要面试新人,所以翻了翻以前的代码,突然发现了一个有意思的问题. 问:如下一个Student类,请实例Student并对其成员变量赋值. public class Student ...

  8. java class对象创建时机_Java面向对象编程-类的声明周期

    第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...

  9. java类声明语句_Java面向对象编程-类的声明周期

    第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...

最新文章

  1. 两个线程同时访问一个变量_百战程序员:Java多线程对象及变量的并发访问
  2. 最新Java面试题2021年,常见面试题及答案汇总
  3. 在jupyter中使用matlab
  4. Swift来了,是不是可以入手IOS开发了?
  5. SSE命令示例代码(整型、读写控制寄存器、混杂、矩阵变换)
  6. Datawhale编程——动态规划DP
  7. 【BZOJ3866】The Romantic Hero DP
  8. Python自定义类支持with关键字
  9. EntityFramework codefirst
  10. windows 配置squid反向代理服务器
  11. git问题ERROR: Repository not found.的解决办法
  12. 转:Nginx 性能优化有这篇就够了!
  13. HDOJ 3480 Division
  14. 三列自适应布局(圣杯布局)
  15. 成功破解:世界杀软“金奖”得主BitDefender 2008(官方中文版 + 注册机下载)
  16. SpringBoot 集成积木报表
  17. 怎么用Hypermesh划分球体网格
  18. 数学笔记——导数5(指数函数和对数函数的导数)
  19. 【计网】2.1.1 客户-服务器体系和P2P体系简述
  20. 2020-12-20

热门文章

  1. ​西湖大学EMBLab诚聘环境工程学、生物信息学、分子生态学科研助理
  2. 342.基于高通量技术的微生物组研究实验设计
  3. 病毒进入体内的48小时
  4. 二代三代转录组测序分析实战班
  5. 科研经验2:云协作建立实验室工作总结和内部资料共享平台
  6. php7 swoole 扩展,PHP7.2加入swoole扩展
  7. R语言sqrt函数为数值开平方根实战
  8. R语言ggplot2可视化绘制线图(line plot)、使用gghighlight包突出高亮线图的满足条件的线图、设置高亮线图不显示默认自动显示的文本标签(use_direct_label)
  9. R语言计算回归模型每个样本(观察、observation、sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用
  10. 影像组学视频学习笔记(25)-查看准确度、灵敏度、特异度及混淆矩阵、Li‘s have a solution and plan.