java 基础之 反射技术_java 程序src阶段 class对象阶段 run阶段3个阶段

System.out.println(in);

}

publicClass[] aa1(String name, int[] password){

returnnew Class[]{String.class} ;

}

privatestatic void aa1(int num){

System.out.println(num+“静态方法”);

}

public  static void main(String[] args){

System.out.println(“main”);

}

}

Demo01.java

package xgp_reflect;

public class Demo01 {

/**

*

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

* @throws ClassNotFoundException

*/

publicstatic void main(String[] args) throws ClassNotFoundException {

//方法1

Classclazz = Class.forName(“/stringjava/src/xgp_reflect/Person.java”);

//方法2

Classclazz2 = new Person().getClass();

//方法3

Classclazz3 = Person.class;

}

}

Demo02.java

// package xgp_reflect;

import java.awt.List;

importjava.lang.reflect.Constructor;

importjava.lang.reflect.InvocationTargetException;

import java.util.ArrayList;

import org.junit.Test;

public class Demo02 {

/**

* 反射类的构造函数,创建类的对象

*/

@Test

//反射构造函数publicPerson()

publicvoid test1() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Constructorc = clazz.getConstructor(null);

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

System.out.println(p.name);

}

//反射构造函数publicPerson(String name)

@Test

publicvoid test2() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Constructorc = clazz.getConstructor(String.class);

Personp = (Person) c.newInstance(“xxxx”);

System.out.println(p.name);

}

//反射构造函数publicPerson(String name, int password)

@Test

publicvoid test3() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Constructorc = clazz.getConstructor(String.class, int.class);

Personp = (Person) c.newInstance(“xiaoguoping”,25);

System.out.println(p.name);

}

//反射构造函数publicPerson(List list)

@Test

publicvoid test4() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Constructorc = clazz.getDeclaredConstructor(List.class);

c.setAccessible(true);

Personp = (Person) c.newInstance(new List());

System.out.println(p.name);

}

//无参数构造函数的另一种方法

@Test

publicvoid test5() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Personp = (Person) clazz.newInstance();

System.out.println(p.name);

}

}

Demo03.java

// package xgp_reflect;

import java.io.FileInputStream;

import java.io.InputStream;

import java.lang.reflect.Method;

import org.junit.Test;

public class Demo3 {

/**

* 反射类的方法

*/

@Test

//反射类的方法–publicvoid aa1()

publicvoid test1() throws Exception{

Personp = new Person();

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod = clazz.getMethod(“aa1”, null);

method.invoke(p,null);

}

@Test

//反射类的方法–publicvoid aa1(String name, int password)

publicvoid test2() throws Exception{

Personp = new Person();

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod= clazz.getMethod(“aa1”, String.class,int.class);

method.invoke(p,“xiaoguoping”,25);

}

@Test

//反射类的方法–publicClass[] aa1(String name, int[] password)

publicvoid test3() throws Exception{

Personp = new Person();

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod= clazz.getMethod(“aa1”, String.class,int[].class);

Classcs[] = (Class[]) method.invoke(p, “xiaoguoping”, new int[]{1,2});

System.out.println(cs[0]);

}

@Test

//反射类的方法–publicvoid aa1(InputStream in)

publicvoid test4() throws Exception{

Personp = new Person();

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod= clazz.getMethod(“aa1”,InputStream.class);

method.invoke(p,newFileInputStream(“C:\unknow.log”));

}

@Test

//反射类的方法–privatestatic void aa1(int num)

publicvoid test5() throws Exception{

//Personp = new Person();静态方法可以不传对象

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod= clazz.getDeclaredMethod(“aa1”,int.class);

method.setAccessible(true);

method.invoke(null,23);

}

@Test

//反射类的方法–publicstatic void main(String[] args)

publicvoid test6() throws Exception{

Classclazz = Class.forName(“xgp_reflect.Person”);

Methodmethod= clazz.getMethod(“main”,String[].class);

//method.invoke(null,newString[]{“aa”,“bb”});//JDK1.4 main(string s1,string s2)拆开参数赋值

//method.invoke(null,(Object)new String[]{“aa”,“bb”});

method.invoke(null,new Object[]{new String[]{“aa”,“bb”}});

}

}

Demo04.java

// package xgp_reflect;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import org.junit.Test;

public class Demo04 {

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

String[]{“aa”,“bb”});

method.invoke(null,new Object[]{new String[]{“aa”,“bb”}});

}

}

Demo04.java

// package xgp_reflect;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import org.junit.Test;

public class Demo04 {

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

html5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

香港即将“放松”加密货币监管!加密牌照制度备受批评!全球主力军无法进入香港市场?动摇了香港Web3的信心!

2024年7月3日,香港金融服务及库务局局长许正宇在立法会会议上表示,香港金融管理局(HKMA)和证券及期货事务监察委员会(SFC)将根据市场发展情况,适时检讨虚拟资产相关活动的监管要求。 这一表态引发了人们对香港加密货币监管框架可能进行调整的…

超详细的 C++中的封装继承和多态的知识总结<1.封装与继承>

引言 小伙伴们都知道C面向对象难,可是大家都知道,这个才是C和C的真正区别的地方,也是C深受所有大厂喜爱的原因,它的原理更接近底层,它的逻辑更好,但是学习难度高,大家一定要坚持下来呀&#xff…

起飞,纯本地实时语音转文字!

简介 偶然在 github 上翻到了这个项目 https://github.com/k2-fsa/sherpa-ncnn 在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持 iOS、Android、Raspberry Pi、VisionFive2、LicheePi4A等。 也就是说语音转文字可以不再借助网络服务的接口&am…

mac显示隐藏的.git文件

打开终端 输入命令 defaults write com.apple.finder AppleShowAllFiles YES killall Finder

Python代码设置Excel工作表背景色或背景图

Excel是工作中数据处理和分析数据的重要工具。面对海量的数据和复杂的表格,如何提高工作效率、减少视觉疲劳并提升数据的可读性是不容忽视的问题。而给工作表设置合适的背景是表格优化的一个有效方式。为Excel工作表设置背景色或背景图不仅能够美化工作表&#xff0…

25.labview数据采集中的读取和写入文本文件和Excel表格文件

①本文将会讲解labview读取和写入文本文件和Excel文件的几种不同方式,讲解程序的基本原理,并提出具体的实施方案,本文内容如下所示。 ②本文文章结束会提供大家 文本和表格读取写入的源程序 ,以便于大家学习和使用。 本文中可能用…

TYPE-C转DC转接头方案,ECP5701支持5V、9V、12V、15V、20V电压输出

如今随着这几年的USB-C PD适配器的普及,消费者手上的PD适配器越来越普遍,如何让以前的电源适配器也可以用上PD适配器呢?如此一来以前的电源适配器坏了,就不需要费心费力的寻找相同的适配器进行更换,甚至于只能将整个设…

Xilinx FPGA:vivado关于单端ROM的一个只读小实验

一、实验要求 将生成好的voe文件里的数据使用rom读取出来,采用串口工具发送给电脑(当按键来临时)。 二、程序设计 按键消抖模块: timescale 1ns / 1ps module key_debounce(input sys_clk ,input rst_n…

怎么录制电脑内部声音?好用的录音软件分享,看这篇就够了!

如何录制电脑内部声音?平时使用电脑工作,难免会遇到需要录音的情况。好用的录音软件有很多,也有部分录屏工具也支持录音功能。 那么如何录制电脑内部声音呢?本文整理了几个录制电脑内部声音的方法,如果你需要在电脑上录…

Spring框架的学习SpringMVC(1)

1.什么是MVC (1)MVC其实就是软件架构的一种设计模式,它将软件的系统分为,(视图,模型,控制器)三个部分 1.1View(视图) 视图也就是,在浏览器显示的那一个部分,是后端数据的呈现 1.…

推荐一个私有化部署的物联网平台

引言 随着物联网技术的飞速发展,越来越多的企业开始寻求能够提供稳定、安全、可定制的物联网解决方案。私有化部署的物联网平台因其能够满足企业对数据安全和个性化需求的优势,逐渐成为市场的新宠。本文将详细介绍ThingsKit物联网平台,一个专…

常见问题记录

conda操作 conda精确查找某个包的版本 conda list 包名下载源 -i https://pypi.mirrors.ustc.edu.cn/simple/conda查看下载源 conda config --show channels下载torch conda install pytorch1.13.0 torchvision0.14.0 torchaudio0.13.0 cpuonlyconda环境没有名字 利用vsc…

【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven+文档 前后端可分离也可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】美容院管理系统 项目源代码MySQL springboot vue html maven文档 前后端可分离也可不分离 2项目介绍 系统功能: 美容院管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改…

“第六感”真的存在吗?

现在已有证据表明,人类除视觉、听觉、嗅觉、味觉和触觉五种感觉以外,确实存在“第六感” “第六感”的学术名称为“超感自知觉”(简称ESP),它能透过正感官之外的渠道接收信息, 预知将要发生的事,而且与当事人之前的经…

向量数据库、主键存储引擎、高速网络 RDMA 框架……DolphinDB 版本更新啦!

盛夏已至,炎热的七月伊始,DolphinDB 也迎来了版本的更新。此次更新的 3.00.1 与 2.00.13 版本从多个维度进行了优化扩展,进一步深化了 DolphinDB 在机器学习、数据分析等领域的尝试与探索。 为了响应用户日益增长的 AI 运算需求,…

C语言自定义类型(结构体,枚举,联合):

大家好久不见,今天我们来学习一下C语言中的自定义类型: C语言的自定义类型包括:结构体,枚举和联合,接下来大家跟我来一起认识一下这三种类型。 目录 1. 结构体 1.1.1 结构体类型的声明 1.1.2 结构的特殊声明 1.1…

钡铼RTU无线S270用于风力发电站机房远程状态监测和故障预警系统集成

在现代风力发电行业中,机房的远程监测和故障预警系统对于保障风力发电机组的稳定运行至关重要。钡铼第4代S270工业级4G远程遥测终端(RTU),以其先进的技术和多功能应用,成为风力发电站机房智能化管理的理想选择。 技术…

深入理解计算机系统 CSAPP 8.4.2 fork函数

//fork.c #include <sys/types.h> #include <unistd.h> #include <stdio.h>int main() {pid_t fpid; //fpid表示fork函数返回的值int count 0;fpid fork();if (fpid < 0)printf("error in fork!");else if (fpid 0) {printf("\ni am th…

相机网线RJ45连接器双端带线5米8芯绿色网线注塑成型

相机网线RJ45连接器双端带线5米8芯绿色网线注塑成型&#xff0c;这款网线采用了环保的绿色材质&#xff0c;线长5米&#xff0c;足够满足大多数拍摄场景的需求。更重要的是&#xff0c;它采用了8芯设计&#xff0c;保证了数据传输的稳定性和高速性。在接口方面&#xff0c;它采…

RpcChannel的调用过程

目录 1. RPC调用方&#xff08;caller&#xff09;的调用(消费)过程 2.在caller下创建文件&#xff1a;calluserservice.cc 3.在src的include下创建文件&#xff1a;mprpcchannel.h 4.在src下创建mprpcchannel.cc 1. RPC调用方&#xff08;caller&#xff09;的调用(消费)过…