反射——Java高级开发必须懂的
来源:互联网 发布:游戏3d美工招聘 编辑:程序博客网 时间:2024/06/06 05:23
- Class类的使用
- 1 Class类的使用
- 动态加载类
- 1 Java 动态加载类
- 获取方法信息
- 1 Java 获取方法信息
- Class类的使用
简介:反射是Java开发中一个非常重要的概念,掌握了反射的知识,才能更好的学习Java高级课程,因此必须要学习——你懂的!本门课程主要介绍Class类的使用,方法和成员变量的反射,以及通过反射了解集合泛型的本质等知识。
1 Class类的使用
1.1 Class类的使用
package com.amoscxy;public class ClassDemo1 { public static void main(String[] args) { Foo foo1 = new Foo(); // foo1是Foo类的实例对象 // Foo这个类也是一个实例对象,Class类的实例对象如何表示呢 // 任何一个类都是Class的实例对象,这个实例对象 有三种表示方式 // 第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员变量class Class c1 = Foo.class; // 第二种表达方式,已知该类的对象通过getClass方法 Class c2 = foo1.getClass(); // Foo类的类类型 /* * 官网,c1,c2表示了Foo类的类类型(class.type) * 万事万物皆对象 * 类也是个对象,是Class类的实例对象 * 这个对象我们称之为该类的类类型 */ // 不管c1 or c2都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 System.out.println(c1==c2); // 第三种表达方式 Class c3 = null; try { c3 = Class.forName("com.amoscxy.Foo"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(c2==c3); // 我们完全可以通过类的类类型创建该类的实例对象--->通过c1 or c2 or c3创建Foo的实例 try { Foo foo = (Foo)c1.newInstance(); // 前提需要有无参数的构造方法 foo.print(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}class Foo{ // Foo这个类本身是个对象,是java.long.Class类的对象 void print() { System.out.println("foo"); }}
2 动态加载类
2.1 Java 动态加载类
功能行的类尽量使用动态加载,动态加载类在运行时加载,编译一次不需要重新编译
OfficeBetter.java
class OfficeBetter{ public static void main(String[] args) { try{ // 动态加载类,在运行时刻加载 Class c = Class.forName(args[0]); // 通过类类型,创建该类的对象 OfficeAble oa = (OfficeAble)c.newInstance(); oa.start(); }catch(Exception e){ e.printStackTrace(); } }}
Word.java
class Word implements OfficeAble{ public void start(){ System.out.println("Word start"); }}
OfficeAble.java—接口,就是标准
interface OfficeAble{ public void start();}
3 获取方法信息
3.1 Java 获取方法信息
阅读全文
0 0
- 反射——Java高级开发必须懂的
- 反射——Java高级开发必须懂的
- java反射--高级开发必须懂的
- java反射---高级开发必须要懂的入门知识
- 反射——Java高级开发必备知识
- Java的高级特性反射
- Java的高级特性反射
- Java高级开发之反射(一)
- 黑马程序员—Java学习笔记之必须掌握的反射技术
- Java的一些高级特性(三)——关于反射
- JAVA高级用法 —— 反射(一)
- Java反射的高级应用,模拟开发环境IDE动态搜索类成员以及方法,。。。。。
- 【java高级特性之反射】Method方法的反射
- 【java高级特性之反射】数组的反射
- Java高级之反射
- java高级之类反射
- java高级之反射
- Java高级---反射机制
- BIO、NIO、AIO的理解
- python debug
- poj 2954(pick定理)
- Nginx负载均衡配置详解
- springmvc之RedirectAttributes用法
- 反射——Java高级开发必须懂的
- 判断一个数是否是水仙花数
- 总结 2017-12-22
- leetCode#100. Same Tree
- node的基础知识
- 《OpenCV设置和获取摄像头参数》
- Java作业-读取选择题文件并作答
- Python使用SMTP发送邮件
- 很多是微信文章,跳转到我的有道云笔记悦读