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

news2024/11/23 23:55:21

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.coloradmin.cn/o/1893562.html

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

相关文章

css实现一个三角形

实现不用方向的三角形可根据border进行设置。具体代码如下: .triangle-up {width: 0;height: 0;border-top: 10px solid transparent;border-left: 10px solid transparent;border-right: 10px solid transparent;border-bottom: 10px solid black;}.triangle-rig…

RuoYi-Cloudv3.6.4使用教程【2】新增子模块_使用代码生成功能,创建功能页面

目录 准备工作修改代码生成的配置信息ry-cloud中创建表 代码生成使用导入对应表代码生成代码放置菜单 启动新增模块创建数据库创建表创建配置文件_新增的模块新增logback.xml新增banner添加路由启动项目 ✨接新增子模块,让子模块运行起来,还没创建模块的…

【ROS中Cjson文件的作用】

在ROS (Robot Operating System) 中,.json 文件通常用于存储配置信息、数据序列化或者在某些情况下用于网络通信和数据交换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于…

git上传文件

git init git add . git commit -m " " git remote add origin 仓库的地址 git push -u origin master 如果出现以下问题 可以用这一句强制上传 git push -f origin master

ValidateAntiForgeryToken、AntiForgeryToken 防止CSRF(跨网站请求伪造)

用途&#xff1a;防止CSRF&#xff08;跨网站请求伪造&#xff09;。 用法&#xff1a;在View->Form表单中: aspx&#xff1a;<%:Html.AntiForgeryToken()%> razor&#xff1a;Html.AntiForgeryToken() 在Controller->Action动作上&#xff1a;[ValidateAntiForge…

部署redis集群哨兵模式

部署redis集群哨兵模式 前言主要功能工作机制 一、虚拟机部署1、安装2、改配置1、redis.conf2、sentinel.conf3、起服务4、停redis-server服务&#xff0c;验证sentinel 3、脚本1. sentinel notification-script2. sentinel reconfig-script3. sentinel client-reconfig-script…

Centos Nginx SSL 配置

Nginx 配置 SSL 1.下载SSL证书 .crt 和 .key文件 2.创建和上传证书 mkdir -p /etc/nginx/cert 上传证书3.nginx.conf配置 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Docum…

策略模式入门:基本概念与应用

目录 策略模式策略模式结构策略模式应用场景策略模式优缺点练手题目题目描述输入描述输出描述题解 策略模式 策略模式&#xff0c;又称政策模式&#xff0c;是一种行为型设计模式&#xff0c;它能让你定义一系列算法&#xff0c;并将每种算法分别放入独立的类中&#xff0c;以…

【开发笔记】如何用正则匹配出百度云盘分享链接的提取码和链接?

用Wordpress做下载站&#xff0c;需要复制网盘链接到后台的文章发布自定义字段&#xff0c;然后我不想每次手动拆分链接和提取码分别到两个input&#xff0c;就想在后台粘帖时候实现拆分它。 $link 链接&#xff1a;https://pan.baidu.com/s/16y9Z5mTSE6gewStGDNndNQ 提取码…

万字长文MySQL Binlog 详细指南

目录 第一阶段 MySQL Binlog 基础用法1. Binlog基本概念1.1 什么是Binlog1.2 Binlog的作用1.3 Binlog格式 2. 配置和管理Binlog2.1 开启Binlog2.2 设置Binlog文件大小和保留时间2.3 查看Binlog状态 3. Binlog的实际应用3.1 数据恢复3.2 主从复制3.3 审计 4. Binlog工具使用4.1 …

数据库表导出到excel:前置知识1 ALL_TAB_COLS

ALL_TAB_COLS 当前用户可访问的表、视图和群集的列的相关信息 其中几个字段: OWNER&#xff1a;表&#xff0c;视图及群集的Owner   TABLE_NAME&#xff1a; 表&#xff0c;视图及聚簇的名称   COLUMN_NAME&#xff1a; 字段名   DATA_TYPE &#xff1a;字段的数据类型…

yaml格式转换成json格式

yaml格式转换成json格式 ①postman生成的结果是yaml格式 ps&#xff1a;postman输出的格式是没有自动换行的&#xff0c;需要将内容换行 ②复制到Python的脚本跑一趟&#xff1a;自动换行并去掉/n&#xff1b; str " "//(postman输出的内容&#xff09; print(st…

Mybatis-03 MetaObject学习

一. 反射调用 如果我们需要给 bean 对象的属性设值&#xff0c;除了我们常用的构造调用方法之外&#xff0c;还可以用反射&#xff1b; 下面我们举一个例子&#xff1b; public static void main(String[] args) throws Exception {Class<Bean01> bean01Clazz Class.…

FreeRTOS之队列上锁和解锁(详解)

这篇文章将记录我学习实时操作系统FreeRTOS的队列上锁和解锁的知识&#xff0c;在此分享给大家&#xff0c;希望我的分享能给你带来不一样的收获&#xff01; 目录 一、简介 二、队列上锁函数prvLockQueue&#xff08;&#xff09; 1、函数初探 2、应用示例 三、队列解锁函…

【代码随想录】【算法训练营】【第55天】 [42]接雨水 [84]柱状图中最大的矩形

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 55&#xff0c;又是一个周一&#xff0c;不能再坚持~ 题目详情 [42] 接雨水 题目描述 42 接雨水 解题思路 前提&#xff1a;雨水形成的情况是凹的, 需要前中后3个元素&#xff0c;计算该元…

Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯

一、现场需求&#xff1a;PLC作为控制器&#xff0c;仪表设备做为执行设备&#xff0c;执行设备能够实时响应PLC传来的指令&#xff0c;并且向PLC回馈数据&#xff0c;从而达到PLC对仪表设备进行控制和监测&#xff0c;实现对生产过程的精准控制。 二、解决方案&#xff1a;通过…

机器学习与AI大数据的融合:开启智能新时代

在当今这个信息爆炸的时代&#xff0c;大数据和人工智能&#xff08;AI&#xff09;已经成为推动社会进步的强大引擎。作为AI核心技术之一的机器学习&#xff08;Machine Learning, ML&#xff09;&#xff0c;与大数据的深度融合正引领着一场前所未有的科技革命&#xff0c;不…

Java判断范围型的数据是否存在重叠(数值类型、日期类型)

为什么写这么一篇文章呢&#xff1f; 遇到了个问题&#xff0c;同一天可以输入多个时间段&#xff0c;但是每个时间段的时间不能出现重叠。 纳尼&#xff0c;这不就是判断数据返回是否有重叠的变种嘛~ 简单&#xff0c;开搞 数字范围是否重叠判断 这里以int类型为例了&…

高德地图轨迹回放并提示具体信息

先上效果图 到达某地点后显示提示语:比如:12:56分驶入康庄大道、左转驶入xx大道等 <!doctype html> <html> <head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta n…

基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现

摘要 随着电子商务的飞速发展&#xff0c;前端页面的设计和实现变得愈发重要。本文介绍了一个基于Vue.js的电商前端模板——Vue-Dashboard-Template&#xff0c;旨在提供一个高性能、易扩展的电商平台前端解决方案。该模板遵循响应式设计、模块化、组件化开发等设计原则&#…