01_反射_02_反射类的构造方法

【工程截图】

 

 

【Person.java】 //将要被反射的类

package com.Higgin.reflect;
import java.util.List;public class Person {private String name="NULL";private int age=0;public Person(){System.out.println("构造方法:Person()");}public Person(String name){System.out.println("构造方法:Person(String name)");this.name=name;}public Person(String name,int age){this.name=name;this.age=age;System.out.println("构造方法:Person(String name,int age)");}/*** 注意:是private 私有的!!!!!!!!*/private Person(List list){System.out.println("构造方法:Person(List list)");System.out.println("list.get(0):"+list.get(0));}public void sayHello(){System.out.println(name+" say: hello world!");System.out.println("I'm "+age+" years old");}
}

【情况一】

【Demo01.java】测试反射无参构造方法Person()

/** 反射Person类的 Person()构造方法,创建类的对象* @throws Exception*/@Testpublic void test1() throws Exception{Class clazz=Class.forName("com.Higgin.reflect.Person");//反射构造方法:public Person()Constructor c=clazz.getConstructor(null); Person p=(Person)c.newInstance(null);p.sayHello();}

【运行结果】

 

【情况二】

【Demo01.java】测试反射有参构造方法Person(Strng name)

/** 反射构造方法:public Person(String name)*/@Testpublic void test2() throws  Exception{Class clazz=new Person().getClass();  //注意,这里其实已经先创建了一个对象(因为new Person())//反射构造方法:public Person(String name)Constructor c=clazz.getConstructor(String.class);Person p=(Person) c.newInstance("Jack");p.sayHello();}

【运行结果】

 

【情况三】

【Demo01.java】测试Person(String name,int age)的情况

/** 反射构造方法:public Person(String name,int age)*/@Testpublic void test3() throws  Exception{Class clazz=Person.class;//反射构造方法:public Person(String name,int age)Constructor c=clazz.getConstructor(String.class,int.class);Person p=(Person) c.newInstance("Jack",18);p.sayHello();}

【运行结果】

 

 【情况三】

【Dem01.java】测试private Person(List list)的i情况,注意是私有的

/** 注意是私有的* 反射构造方法:private Person(List list)*/@Testpublic void test4() throws  Exception{Class clazz=Person.class;//反射构造方法:private Person(List list)Constructor c=clazz.getDeclaredConstructor(List.class); c.setAccessible(true);    //暴力反射,没有这句会出错的!!!!!!!!List list=new ArrayList();list.add("6666666");Person p=(Person) c.newInstance(list);p.sayHello();}

【运行结果】

 

 

【创建对象的另外一种写法】等同于test1()的测试方法

    /*** 创建对象的另外一种方式* @throws Exception*/@Testpublic void test5() throws  Exception{Class clazz=Class.forName("com.Higgin.reflect.Person");Person p=(Person)clazz.newInstance();  //本质就是反射类的无参构造方法反射对象
        p.sayHello();}

【运行结果】

 

转载于:https://www.cnblogs.com/HigginCui/p/5767098.html

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

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

相关文章

私有云搭建 OpenStack(centos7.3, centos-release-openstack-ocata)

OpenStack(centos7.3,centos-release-openstack-ocata)nova:计算节点queue:消息队列,系统瓶颈所在scheduler:调度机制conductor:更新数据库cert(objectstore)&#xff1a…

C# 类继承中的私有字段都去了哪里?

最近在看 C 类继承中的字段内存布局,我就很好奇 C# 中的继承链那些 private 字段都哪里去了? 在内存中是如何布局的,毕竟在子类中是无法访问的。一:举例说明 为了方便讲述,先上一个例子:internal class Program{stati…

大型分布式网站架构技术总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值…

python 数据分析找到老外最喜欢的中国美食【完整代码】

一、环境及依赖 语言:python3.8 抓取:selenium 代理:ipide **注:**想要完整代码的在末尾,注意新手建议慢慢看完。在此提示一下本篇文章的编写步骤:1.获取数据、2.翻译、3.数据清洗、4.切词词权重、5.词云 …

hihoCoder 1257 Snake Carpet(很简单的构造方法)

2015 ACM / ICPC 北京现场赛 I 题 构造 注意一个小坑&#xff0c;每条蛇的输出是要从头到尾输出的。 还要注意的是&#xff0c;不能开数组去模拟构造过程&#xff0c;然后输出&#xff0c;那样会TLE的。 #include <cstdio> #include <cstring> #include <cmath&…

西北师范大学地理与环境科学学院考研真题汇总(高等数学)持续更新。。。

西北师范大学地理与环境学科学院研究生入学考试的所有专业(地图学与地理信息系统、自然地理学、人文地理学、环境科学、环境工程)的数学均为自主命题,复习参考教材为同济大学第五版。

Java网络编程二:Socket详解

Socket又称套接字&#xff0c;是连接运行在网络上两个程序间的双向通讯的端点。 一、使用Socket进行网络通信的过程 服务端&#xff1a;服务器程序将一个套接字绑定到一个特定的端口&#xff0c;并通过此套接字等待和监听客户端的连接请求。 客户端&#xff1a;客户端程序根据你…

在 .NET 中使用 FixedTimeEquals 应对计时攻击

计时攻击 在计算机安全中&#xff0c;计时攻击&#xff08;Timing attack&#xff09;是旁道攻击 &#xff08;Side-channel attack&#xff09; 的一种&#xff0c;而旁道攻击是根据计算机处理过程发出的信息进行分析&#xff0c;包括耗时&#xff0c;声音&#xff0c;功耗等…

解读大型网站系统架构的演化

解读大型网站系统架构的演化 大型网站的架构是根据业务需求不断完善的&#xff0c;根据不同的业务特征会做特定的设计和考虑&#xff0c;本文只是讲述一个常规大型网站会涉及的一些技术和手段。作者&#xff1a;李平来源&#xff1a;LEE的博客前言 一个成熟的大型网站&#xff…

【ArcGIS风暴】西北地区气象台站年均NDVI与年均气温和降水的相关性分析

在研究植被动态变化与气候的关系时,通常通过计算植被NDVI值与气温和降水的相关系数来描述相关性的大小。如下图所示,计算了西北地区分布的气象台站与气温和降水的相关性并作图可视化。 下面详细说明整个实现过程。 一、计算相关系数 1. 原理分析 通过计算年均N…

python 全解坦克大战 辅助类 附完整代码【雏形】

我正在博客之星评选&#xff0c;欢迎投票给我 会从投票人中抽奖机械键盘书&#xff0c;中了会私聊地址 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.net/topics/603955346 投票连接是&#xff1a;https://bbs.csdn.…

vc++ mfc中拖动效果的实现 借助于CImageList

拖动是界面编程频繁使用的一个效果&#xff0c;在windows系统下可谓大行其道。纵观时下的应用软件几乎各个都支持各种各样拖动的效果&#xff0c;windows7更是把拖动做到了极致。其实说起来拖动的实现也很简单&#xff0c;对于有句柄的对象都可以通过MoveWindow或SetWindowPos实…

有序的Map集合--LinkedHashMap

提出问题&#xff1a; 在写一个dao的时候&#xff0c;我的需求是这个dao是一个万能的&#xff0c;目前的方法只有一个查询出实体类对应的表中所有的数据&#xff0c;通过传入的对象&#xff0c;利用反射获取实体类中的属性名&#xff0c;属性类型&#xff0c;利用字符串拼接获取…

yii 前后台分离及登陆验证

2019独角兽企业重金招聘Python工程师标准>>> 比较合理的做法其实是分成两个框架来布署&#xff1b;然而这样说法也太绝对。 事实上是针对不同系统&#xff0c;应采用不同的方法。如为CMS系统&#xff0c;则不需很复杂的权限管理&#xff0c;但如果有管理员与会员之分…

Kibana

2019独角兽企业重金招聘Python工程师标准>>> Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的&#xff0c;查询语法是基于Lucene的查询语法。允许布尔运算符、通配符和字段筛选。注意关键字要大写 全文搜索 在搜…

电脑QQ能登上,网页打不开的解决办法

打开360卫士&#xff0c;在功能大全里选择网络优化&#xff0c;断网急救箱。 可以看到DNS服务异常、浏览器配置异常&#xff0c;点击立即修复。

个人黑名单 抄袭耻辱墙

抄袭耻辱墙 博主抄袭文原文我爱Python数据挖掘https://blog.csdn.net/weixin_38037405/article/details/125862095https://blog.csdn.net/A757291228/article/details/117464313黄埔数据分析https://blog.csdn.net/weixin_39060517/article/details/118024847https://blog.csdn…

快速掌握 ASP.NET 身份认证框架 Identity(一)

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事ASP.NET Core 内置了一个强大的身份认证框架 Identity&#xff0c;掌握它可以让我们快速开发高安全的身份认证功能&#xff0c;不仅如此&#xff0c;它还是一个基于数据库的用户管理系统&#xff0c;其中包含了大量的辅助…

浅谈大型web系统架构

动态应用&#xff0c;是相对于网站静态内容而言&#xff0c;是指以c/c、php、Java、perl、.net等服务器端语言开发的网络应用软件&#xff0c;比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可分。   大型动态应用…

PHP: 手把手编写自己的 MVC 框架实例教程

1 什么是MVC MVC模式&#xff08;Model-View-Controller&#xff09;是软件工程中的一种软件架构模式&#xff0c;把软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。 …