java 反射获取对象_使用Java反射机制获取对象
本文由广州疯狂软件教育java培训分享:
构造接口Person,所有Person都会问好,但具体讲什么语言就不知道了!
package interf;
public interface Person {
public void sayHello();
}
构造一个Person的实现类American,问好的时候讲英语
package interf;
public class American implements Person {
@Override
public void sayHello() {
System.out.println("Hello,I'm American!");
}
}
构造一个Person的实现类Chinese,问好的时候讲中文
package interf;
public class Chinese implements Person {
public void sayHello() {
System.out.println("你好,我是中国人!");
}
//重写sayHello方法
public void sayHello(String language) {
this.language=language;
System.out.println("你好,我用"+language+"问好!");
}
}
package interf;
import org.junit.*;
public class PersonTest {
public void Test() throws ClassNotFoundException, InstantiationException,
IllegalAccessException {
//第一种方式,直接new
Person p = new Chinese();
p.sayHello();
//第二种方式,采用反射机制获取对象
//Class> c = Class.forName("interf.Chinese");
Class> c = Class.forName("interf.American");
System.out.println("Chinese类全名:"+Chinese.class.getSimpleName());
System.out.println("Chinese类名:"+Chinese.class.getName());
Person p3 = (Person)c.newInstance();
p3.sayHello();
try {
Constructor> constructor = Chinese.class.getConstructor(); //获取构造方法
Chinese chineseReflect = (Chinese) constructor.newInstance(); //创建对象
Method method = Chinese.class.getMethod("sayHello",String.class); //获取方法
method.invoke(chineseReflect, "中文"); //调用方法
Field field = Chinese.class.getField("language"); //获取域
System.out.println("Reflect -> " + field.get(chineseReflect)); //获取域的值
} catch (Exception e) {
e.printStackTrace();
}
}
}
test结果如下:
你好,我是中国人,我用中文
Chinese类全名:Chinese
Chinese类名:interf.Chinese
Hello,I'm American!
你好,我用中文问好!
Reflect -> 中文
疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼
java 反射获取对象_使用Java反射机制获取对象相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化
今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...
- java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...
写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...
- java反射的优化_请问Java反射的性能为什么比直接调用慢一个数量级左右?
Method.invoke()本身要用数组包装参数:而且每次调用都必须检查方法的可见性(在Method.invoke()里),也必须检查每个实际参数与形式参数的类型匹配性(在NativeMethodA ...
- java 反射创建属性_使用Java反射机制确定基本数据类型属性
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Java反射机制提供了一种强大的应用程序接口来帮助我们在运行时检测和执行对象上的操作.该机制允许程序员审视一个未知对象,并且获得它的属性,例如对象上的方法 ...
- java反射invoke空指针_【Java】Java 反射 object is not an instance of declaring cla
[Java]Java 反射 object is not an instance of declaring cla [Java]Java 反射 object is not an instance of ...
- java robot 对象_用Java Robot对象实现服务器屏幕远程监视
用Java Robot对象实现服务器屏幕远程监视 作者:李鲁群 摘要: 有时候,在Java应用程序开发中,如:远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作, ...
- java synchronized 类锁_【java】synchronized对象锁和类锁简介【图文教程】
平凡也就两个字: 懒和惰; 成功也就两个字: 苦和勤; 优秀也就两个字: 你和我. 跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美! 关注微信 ...
- java数组最大下标_【Java视频教程】day09-面向对象
面向对象介绍 面向对象引入 需求:求数组{1,2,3,4,8,7,6,5}的最大值: public static void main(String[] args) {// 需求:求数组{1,2,3,4 ...
最新文章
- cutadapt 处理fastq文件
- redis为什么是单线程_面试官:Redis单线程为什么执行效率这么高?
- 详解Pattern类和Matcher类
- 10.23cron10.24chkconfig工具10.25systemd管理服务10.26unit
- list java removeif_java – removeIf()方法.从List中删除所有元素
- python:filter用法
- C代码写的比Codex还溜的AI神器开源
- java dom_Java DOM 解析 XML详解
- java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layou
- Java旅游管理系统本科生毕业设计任务书
- Exceed 13+Gambit 2.4.6 +Tgrid 安装
- 电阻的快速选型对开发项目非常重要
- Android WebView下载apk
- 与iPhone5国行A1429的故事:越狱、降级刷机、完美电信3G、不完美电信4G、撸油管
- 南怀瑾讲述99个人生道理
- 使用Java Swing编写文件操作管理器
- golang项目 七牛图片管理系统 基于GIN
- 诺基亚安卓手机无法清理后台任务
- 人体行为识别特征点提取 综述很全面
- Python:使用PyAV提取视频关键帧