java反射类带构造函数_java中反射类的加载和构造函数
我们先创建了一个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中反射类的加载和构造函数相关推荐
- java中类的修饰符_Java中的类修饰符
之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...
- java中反射到底是什么_JAVA中反射是什么
烧仙草VB JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息.首先我们先明确两个概念,静态编译和动态编译. ...
- java引用类的关键字_java中定义类通常使用的关键字有哪些
下面四种 1) private 类中限定为private的成员,只能被这个类本身访问. 如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例. 2) default 类中不加任何访 ...
- java中string类面试题_java中String类的面试题大全含答案
1.下面程序的运行结果是()(选择一项) String str1="hello"; String str2=new String("hello"); Syste ...
- java 所有类的超类_Java中所有类的超类Object
Object的地位 在Java中所有的类都继承于Object类,但不用在声明一个类时显示的extends Object Object中几个重要的方法: 1.equals方法: 用于检测一个对象是否等于 ...
- java 中反射的使用_java中反射的基本使用
fanShe.java package example5; class fanShe{ /*1.应用在一些通用性比较高的代码中. *2.后面学的框架,大多数都是应用框架来实现的. *3.在框架开发中, ...
- java中成员变量的加载时机_工作奇谈——JAVA高级特性之反射
一.从问题入手 最近又要面试新人,所以翻了翻以前的代码,突然发现了一个有意思的问题. 问:如下一个Student类,请实例Student并对其成员变量赋值. public class Student ...
- java class对象创建时机_Java面向对象编程-类的声明周期
第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...
- java类声明语句_Java面向对象编程-类的声明周期
第十章 类的生命周期 10.1 Java虚拟机及程序的生命周期 当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程.Java虚拟机进程从启动到终止的过程,称为Java虚拟机的生命 ...
最新文章
- 两个线程同时访问一个变量_百战程序员:Java多线程对象及变量的并发访问
- 最新Java面试题2021年,常见面试题及答案汇总
- 在jupyter中使用matlab
- Swift来了,是不是可以入手IOS开发了?
- SSE命令示例代码(整型、读写控制寄存器、混杂、矩阵变换)
- Datawhale编程——动态规划DP
- 【BZOJ3866】The Romantic Hero DP
- Python自定义类支持with关键字
- EntityFramework codefirst
- windows 配置squid反向代理服务器
- git问题ERROR: Repository not found.的解决办法
- 转:Nginx 性能优化有这篇就够了!
- HDOJ 3480 Division
- 三列自适应布局(圣杯布局)
- 成功破解:世界杀软“金奖”得主BitDefender 2008(官方中文版 + 注册机下载)
- SpringBoot 集成积木报表
- 怎么用Hypermesh划分球体网格
- 数学笔记——导数5(指数函数和对数函数的导数)
- 【计网】2.1.1 客户-服务器体系和P2P体系简述
- 2020-12-20
热门文章
- ​西湖大学EMBLab诚聘环境工程学、生物信息学、分子生态学科研助理
- 342.基于高通量技术的微生物组研究实验设计
- 病毒进入体内的48小时
- 二代三代转录组测序分析实战班
- 科研经验2:云协作建立实验室工作总结和内部资料共享平台
- php7 swoole 扩展,PHP7.2加入swoole扩展
- R语言sqrt函数为数值开平方根实战
- R语言ggplot2可视化绘制线图(line plot)、使用gghighlight包突出高亮线图的满足条件的线图、设置高亮线图不显示默认自动显示的文本标签(use_direct_label)
- R语言计算回归模型每个样本(观察、observation、sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用
- 影像组学视频学习笔记(25)-查看准确度、灵敏度、特异度及混淆矩阵、Li‘s have a solution and plan.