Java系列笔记Java RTTI及反射机制.pdfVIP

  • 0
  • 0
  • 约1.03万字
  • 约 8页
  • 2017-06-07 发布于湖北
  • 举报
Java 系列笔记(2) - Java RTTI 和反射机制 目录 1. 前言 2. 传统的RTTI 3. 反射 4. 反射的实现方式 5. 反射的性能 6. 反射与设计模式 前言 并不是所有的Class 都能在编译时明确,因此在某些情况下需要在运行时再发 现和确定类型信息(比如:基于构建编程,),这就是RTTI (Runtime Type Information,运行时类型信息)。 在java 中,有两种RTTI 的方式,一种是传统的,即假设在编译时已经知道了 所有的类型;还有一种,是利用反射机制,在运行时再尝试确定类型信息。 本文主要讲反射方式实现的RTTI,建议在阅读本文之前,先了解类的加载机制 (参考我的博客:Java 系列笔记(1) - Java 类加载与初始化)。 在本文中,将共同使用下面的玩具类Toy,该类中定义了公有、私有方法,变 量,构造方法,父类、父接口等: package myblog.rtti; /** * @project MyBlog * @create 2013 年6 月28 日 下午4:42:46 * @version 1.0.0 * @author 张广 */ public interface IToy { public String playToy(String player) throws Exception; } package myblog.rtti; public class AbstractToy implements IToy { @Override public String playToy(String player) throws Exception { System.out.println(player + plays abstract toy); return ; } } package myblog.rtti; public class Toy extends AbstractToy { private String name; public String color; protected int size; public static final int price = 10; static { System.out.println(Loading); } public Toy() {// 构造方法一定要声明为public 类型,不然用 getConstructors 无法得到 System.out.println(Initialing); setName(myToy); color = red; size = 5; } public Toy(String name, String color, int size) { this.setName(name); this.color = color; this.size = size; } public String getName() { return name; } public void setName(String name) { = name; } @Override public String playToy(String player) throws Exception { String msg = buildMsg(player);

文档评论(0)

1亿VIP精品文档

相关文档