Day29-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\reflect

news/2025/11/2 20:37:13/文章来源:https://www.cnblogs.com/David0919/p/19185390

单元测试

Junit单元测试框架

image-20251102135201351

image-20251102135232487

package Basic.src.com.Junit;public class StringUtil {public static void printNumber(String name) {if (name == null) {System.out.println(0);return;//停掉方法}System.out.println("名字的长度是:"+name.length());}/*** 求字符串最大索引*/public static int getMaxIndex(String data){if(data==null||data.length()==0){return -1;}return data.length()-1;}
}
package Basic.src.com.Junit;import org.junit.Assert;
import org.junit.Test;/*** 测试类*/
public class StringUtilTest {@Test //测试方法,要先导入框架才不会报错public void testPrintNumber(){//测试方法一定是公开无返回值无参数StringUtil.printNumber("admin");StringUtil.printNumber(null);}@Testpublic void testGetMaxIndex(){int index1 = StringUtil.getMaxIndex(null);System.out.println(index1);int index2 = StringUtil.getMaxIndex("admin");System.out.println(index2);//断言机制:程序员可以通过预测业务方法的结果Assert.assertEquals("wrong",4,index2);}
}

image-20251102172758208

image-20251102174348747

package Basic.src.com.Junit;import org.junit.*;import java.net.Socket;/*** 测试类*/
public class StringUtilTest {//private Socket socket;private static Socket socket;@BeforeClass//初始化资源public static void setUpBeforeClass() throws Exception {System.out.println("---------setUpBeforeClass 执行了----------------");socket = new Socket("127.0.0.1", 9999);}@AfterClass//释放资源public static void tearDownAfterClass() throws Exception {System.out.println("---------tearDownAfterClass 执行了----------------");socket.close();}@Before//可以用来写环境准备的代码public void test1(){System.out.println("------->test1 before 执行了---------------");//socket = new Socket();//连接}@Afterpublic void test2(){System.out.println("------->test2 before 执行了---------------");//socket.close();}@Test //测试方法,要先导入框架才不会报错public void testPrintNumber(){//测试方法一定是公开无返回值无参数StringUtil.printNumber("admin");StringUtil.printNumber(null);}@Testpublic void testGetMaxIndex(){int index1 = StringUtil.getMaxIndex(null);System.out.println(index1);int index2 = StringUtil.getMaxIndex("admin");System.out.println(index2);//断言机制:程序员可以通过预测业务方法的结果Assert.assertEquals("wrong",4,index2);}
}

反射

image-20251102175340151

image-20251102175404706

package Basic.src.com.reflect;public class Test1Class {public static void main(String[] args) throws Exception {Class<Student> c1 = Student.class;System.out.println(c1.getName());//全类名System.out.println(c1.getSimpleName());//简名 Student//Class.forName(c1.getName());Class<?> c2 = Class.forName("Basic.src.com.reflect.Student");System.out.println(c1 == c2);Student s = new Student();Class<? extends Student> c3 = s.getClass();System.out.println(c2 == c3);}
}

image-20251102194147028

package Basic.src.com.reflect;import org.junit.Test;import java.lang.reflect.Constructor;public class Test2Constructor {@Testpublic void testGetConstructors(){//1.反射第一步,必须要先得到这个类的Class对象Class<Cat> c = Cat.class;//2.获取类的全部构造器//Constructor<?>[] constructors = c.getConstructors();//只能拿到被public修饰的构造器Constructor<?>[] declaredConstructors = c.getDeclaredConstructors();//获取全部构造器//3.遍历确认for (Constructor<?> declaredconstructor : declaredConstructors) {System.out.println(declaredconstructor.getName()+"----------"+declaredconstructor.getParameterCount());//Basic.src.com.reflect.Cat----------0无参//Basic.src.com.reflect.Cat----------2}Student student = new Student();}@Testpublic void testGetConstructor() throws Exception {//1.反射第一步,必须要先得到这个类的Class对象Class<Cat> c = Cat.class;//2.获取某一个构造器(这里是无参构造器)//Constructor<Cat> constructor = c.getConstructor();//只能拿public修饰的Constructor<Cat> constructor = c.getDeclaredConstructor();//都能拿//3.获取有参构造器Constructor<Cat> declaredConstructor = c.getDeclaredConstructor(String.class, int.class);//要写上.class,私有的也可以拿到System.out.println(declaredConstructor.getName()+"----------"+declaredConstructor.getParameterCount());}
}

image-20251102194356765

package Basic.src.com.reflect;import org.junit.Test;import java.lang.reflect.Constructor;public class Test2Constructor {@Testpublic void testGetConstructors(){//1.反射第一步,必须要先得到这个类的Class对象Class<Cat> c = Cat.class;//2.获取类的全部构造器//Constructor<?>[] constructors = c.getConstructors();//只能拿到被public修饰的构造器Constructor<?>[] declaredConstructors = c.getDeclaredConstructors();//获取全部构造器//3.遍历确认for (Constructor<?> declaredconstructor : declaredConstructors) {System.out.println(declaredconstructor.getName()+"----------"+declaredconstructor.getParameterCount());//Basic.src.com.reflect.Cat----------0无参//Basic.src.com.reflect.Cat----------2}Student student = new Student();}@Testpublic void testGetConstructor() throws Exception {//1.反射第一步,必须要先得到这个类的Class对象Class<Cat> c = Cat.class;//2.获取某一个构造器(这里是无参构造器)//Constructor<Cat> constructor = c.getConstructor();//只能拿public修饰的Constructor<Cat> constructor1 = c.getDeclaredConstructor();//都能拿,<cat>声明一个泛型constructor1.setAccessible(true);//禁止检查访问权限Cat cat = constructor1.newInstance();//完成对象初始化:有声明之后newInstance()的返回值才可以拿cat类去接收,否则得强转System.out.println(cat);//3.获取有参构造器Constructor<Cat> constructor2 = c.getDeclaredConstructor(String.class, int.class);//要写上.class,私有的也可以拿到System.out.println(constructor2.getName()+"----------"+constructor2.getParameterCount());constructor2.setAccessible(true);Cat cat2 = constructor2.newInstance("哈基滨", 3);System.out.println(cat2);}
}

image-20251102201843170

package Basic.src.com.reflect;import org.junit.Test;import java.lang.reflect.Field;public class Test3Field {@Testpublic void testGetFields() throws Exception {//1.反射第一步,必须是得到类的Class对象Class<Cat> c = Cat.class;//2.获取类的全部成员变量Field[] fields = c.getDeclaredFields();//3.遍历这个成员变量for (Field field : fields) {System.out.println(field.getName()+"----------"+field.getType());}//4.定位某个成员变量Field fName = c.getDeclaredField("name");System.out.println(fName.getName()+"----------"+fName.getType());Field fAge = c.getDeclaredField("age");System.out.println(fAge.getName()+"----------"+fAge.getType());//赋值fName.setAccessible(true);fAge.setAccessible(true);Cat cat1 = new Cat();//public Cat()Cat cat2 = new Cat();fName.set(cat1,"咖啡猫");System.out.println(cat1);//取值String name = (String)fName.get(cat2);System.out.println(name);};
}

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

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

相关文章

k8s-Pod中的网络通信(3)

部署的pod都会涉及到和内外网络通信,我们部署的pod 有一个ip,这个IP 是集群内部的IP ,只能在集群内被访问,k8s中pod的网路通信是交给service来管理的,简称svc。负责将外部流量引入,和内部流量引出。 1.外部流量访…

一个灵感:思维的断章

一个灵感:思维的断章 它来时,没有预兆。 不是在逻辑的链条上规行矩步,也不是在记忆的仓库里按图索骥。它诞生于一片更为辽阔、更为混沌的模糊空间。 那片空间,是意识的背景辐射,是思想形成之前的星云。那里,概念…

第十届中国大学生程序设计竞赛 哈尔滨站(CCPC 2024 Harbin Site)

第十届中国大学生程序设计竞赛 哈尔滨站(CCPC 2024 Harbin Site)比赛链接 Review 因为下周就要“一起哈啤”,所以这周末来 VP 去年的“一起哈啤”,然而已经一个多月没写代码了! 开题顺序依旧,看了个 J 感觉还挺可…

CSP-S 回顾

开考后发现自己穿了一个绒秋裤,考场上要被热死了,不断通过喝水降低体温。 $1min$ 第一题一下想到$DP和反悔贪心$,还好学了(汗) $1min 1s$否决掉了$DP$ $20min$ 奶龙考试时遇到了一些问题: 优先队列pair<int,p…

https://heylink.me/tizihacks/

https://heylink.me/tizihacks/https://heylink.me/tizihacks/

2025CSP-J游记

今年是最后一次打J组了,考的还可以。 上考场了,心想必将 J组 \(AK\),我带着信心又有点慌进考场了。 先看 \(T_1\) \(T_1\) 我感觉隔壁同学(好像是华辰的)语文挺好,看题好快,迅速开打。 \(应该是“最难的题”了吧…

通达信:引用函数 - Leone

DRAWNULL 无效数返回无效数。用法: DRAWNULL例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时不画线。 BACKSET 向前赋值用法: BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1. 例如: BACKSET(CLO…

项目架构

聊天机器人项目架构

CSP总结

DAY-1 机房里萦绕着一种特有的氛围,我复习了 \(wiki\) 上的数学与 \(DP\) 章节(但并没有用到)。 DAY1 8点到校,或许是前一天没睡好的缘故,在车上就想睡觉,于是在原本几乎全车人都很活跃的时间段里没有什么参与。…

AI泡沫再思考:技术革命与投资狂潮的真相

本文探讨了当前AI领域的投资泡沫现象与技术发展前景,分析了AGI实现时间表、就业市场影响以及初创企业生存率等关键问题,指出技术突破与市场震荡并存的复杂性。重新审视AI泡沫 | Daniel Miessler 为什么重大崩盘、AGI…

[群表示论]基本概念

取基础域为 \(\mathbb k\). 令 \(G\) 是一个群,同态 \(\rho\colon\ G\longrightarrow GL(V)\) 给出 \(G\) 的表示 \((V,\rho)\),其中 \(V\) 是线性空间. 我们称 \(V\) 是 \(G-\)模. 令 \(V\) 是 \(G-\)模,\(W\) 是 …

P14362 [CSP-S 2025] 道路修复

题目大意 给定 \(n\) 个点,\(m\) 条边的无向图且有边权,有 \(k\) 个额外点,每个额外点向这 \(n\) 个点连边,且额外点有点权,求最小生成树。 \(n\leq 1e4\),\(m\leq 1e6\),\(k\leq 10\)。 Sol 从考场思路改了一点…

10.30总结

1.早点休息了明天去泰山

基于 Maxwell 实现 MySQL 数据实时迁移到 Mongodb

在 DB 运维层而非应用层实现需求,以降低应用层的业务侵入性及性能影响。 maxwell 是一款 ETL 工具,基本原理是 实时解析 MySQL 的 binlog 丢到相应的 MQ 中供具体业务逻辑去消费。 比如最典型的一种大数据日志路径:…

CSP2025-S 坠机记

CSP2025-S 坠机记 省流:未能完成 AK 的心愿。初赛随便考的,94 分。 复赛依然是在七高,成功在 14:20 抵达教室,发现我所在的机房电脑性能要烂一些,然而键盘要好一些,应该是好事。位置是靠窗,比较好,开考前准备写…

世界计划:无法歌唱的初音未来

标题是骗你点进来的。 Day 0 上午爽爽玩神秘构造小游戏,连砍到 C 不知道多少。 然后写了点 AGC 题,感觉都很水啊,自己强爆了。 中午回去刷本,fgo 真特么好玩。 下午进考场,发现自己的座位附近散布了一堆熟人,但貌…

11.2 每日一题 赦免战俘

本题要求将一个矩阵分为四个子矩阵,在将四个子矩阵不断继续分成个子矩阵,直到无法分出,并且每次对左上角的矩阵进行处理。 本题可用dfs对矩阵不断进行划分如图所示,我们的目标为对每次划分出来的矩阵的左上角进行处…

jenkins安装排错

jenkins安装排错[root@localhost ~]# docker history jenkins/jenkins:2.497-jdk17 IMAGE CREATED CREATED BY SIZE COMMENT 2cef2c7f7799 8 months ago…

一、RK3562板卡上手

一、概述 板卡是搞活动的时候一块99元的RK3562,配置1GB的DDR、8GB的EmmC。 二、如何使用USB烧录系统到Emmc安装DriverAssitant_v5.13,安装瑞芯微的USB驱动,先点击卸载再点击安装 安装RKDevTool_Release_v3.31,安装…