反射机制:在C/C++里面是没有的。

反射机制是Java的一个非常重要的机制。一些著名的应用框架都使用了此机制。

java.lang.Class它是Java语法的一个基础类,用于描述一个class对象。在文件系统中,class以文件的形式存在 Student.class在运行时的JVM中,该*.class文件被加载到内存中成为一个对象,对象的类型就是java.lang.Class。

代码如下:

Student.java

package my;public class Student
{private int id;private String name;private String phone;public Student(){}public Student(int id, String name, String phone){this.id = id;this.name = name;this.phone = phone;}@Overridepublic String toString(){return "(" + id + "," + name + "," + phone + ")";}public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getPhone(){return phone;}public void setPhone(String phone){this.phone = phone;}@Overridepublic boolean equals(Object obj){// 与一个Student对象比较if(this.getClass().isInstance(obj)){Student other = (Student) obj;return other.id == this.id;}// 与一个String对象比较 if(String.class.isInstance(obj)){String other = (String)obj;return other.equals(this.name);}// 与一个Integer对象比较if(Integer.class.isInstance(obj)){Integer other = (Integer)obj;return this.id == other;}return false;}
}

HelloWorld.java

package my;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class HelloWorld
{public static void test1(Object obj){Class cls = Student.class;if(cls.isInstance(obj)){// 判断obj是不是Student类型System.out.println("is an instance of Student");}else {System.out.println("is not an instance of Student");}}public static void test2(Object obj){String clsName = obj.getClass().getName();if(clsName.equals("my.Student")){System.out.println("is an instance of Student");}}public static void main(String[] args){    Class cls = Student.class;     System.out.println("Name: " + cls.getName());//      Student obj = new Student();
//      Class cls2 = obj.getClass();Object obj = new Student();test1( new Integer(123));Student s1 = new Student(1000, "qiuqiu", "13254565789");Student s2 = new Student(10001, "tuitui", "13562352365");if(s1.equals(1000)){System.out.println("equal");}else{System.out.println("not equal");}}
}

运行结果如下:

Java高级语法笔记-反射机制(Reflection) (1)相关推荐

  1. Java高级语法笔记-模板类

    模板类 模板类用与表示通用的数据结构和算法. 例如,定义一个类List,表示通用链表(适用于任意对象的类型) 定义模板类: class List<T>{ } 使用模板类:创建List对象时 ...

  2. Java高级语法笔记-枚举类型

    用enum定义枚举类型,即定义一些常量. public enum Weekday{ SUNDAY,MONDAY,TUESDAY,WEDNESDAY, THURSDAY,FRIDAY,SATURDAY ...

  3. Java高级语法笔记-匿名类(Anonymous Class)

    匿名类(Anonymous Class) 匿名内部类,简称匿名类:是内部类的一种化简写法. 基本写法如下: BaseType obj=new BaseType(){ //类的定义 } Java项目中匿 ...

  4. Java高级语法笔记-接口(interface)

    接口interface 接口和抽象类写法是一样的(只定义一个声明) interface的使用:定义一个类,implements这个接口.(对比abstract class,extends) inter ...

  5. Java高级语法笔记-语法支持的异常

    语法支持的异常 Java对异常支持得很彻底,举例来说: (java.lang.*下面,语法自带的异常类) 数组越界 ArrayIndexOutOfBoundsException 除0异常 Arithm ...

  6. Java高级语法笔记-多个异常处理

    如果不用异常机制,而是使用if判断,那也能完成相同的功能. 异常机制的优点: (1) 增加业务流程的可读性. (2) 错误的自描. (3) 减轻程序员的负担,可以将注意力集中到正常业务流程上面. 将一 ...

  7. Java高级语法笔记-普通异常处理

    地位: 1. Java彻底地.完全地支持了异常机制. 2. 无处不在.必须掌握. 正常情况:传入一个数组,长度为N,则getMax能够正常运作得到最大值. 异常情况:传入一个数组,长度为0...如何处 ...

  8. Java高级语法笔记-文本文件的按行读取

    代码如下: HelloWorld.java package my;import java.io.BufferedReader; import java.io.File; import java.io. ...

  9. Java高级语法笔记-文件操作-链表的存储

    代码如下: AfByteBuffer.java package my;import java.io.File; import java.io.FileInputStream; import java. ...

最新文章

  1. Linux系统 proc self,linux – / proc / self / maps中的“— p”权限是什么意思?
  2. dotnet 手工打一个 dotnet tool 包
  3. 斐波那契数列求解+尾递归
  4. hdu4565之矩阵快速幂
  5. T-SQL Optimization Tips (3): SELECT COUNT(*)
  6. cluster+raid5+oracle,raid5的一块盘状态为missing
  7. sql server 内存_SQL Server内存性能指标–第1部分–内存页/秒和内存页故障/秒
  8. 判断并输出打印前一百个回文素数,每行10个
  9. rails3高端observer模式
  10. jQuery应用实例4:下拉列表
  11. HTML做一个简单漂亮的宠物网页(纯html代码)
  12. [转载]布谷鸟算法的程序(个人注释)
  13. 数据结构c语言课程设计报告,数据结构c语言课程设计报告.doc
  14. 开题报告的选题依据怎么写?
  15. HTML5期末大作业:中华美德网站设计——中华美德(6页) HTML+CSS+JavaScript web大作业 静态网页
  16. 欧姆龙485通讯示例程序_黄冈欧姆龙plc培训班
  17. 【MySQL】报错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mys
  18. SkyWalking 概念与设计总览
  19. 倾斜模型精细化处理_浅谈几个倾斜摄影三维模型的修补软件 - 纳金网
  20. 国瀚实业|怎么才能做好互联网投资理财

热门文章

  1. dazhilu网站代码【完整篇】
  2. 从 VC7 的 CHtmlView 不能正常退出谈 CComPtr 使用中的一个误区
  3. 飞鸽传书确保服务数据的安全可靠
  4. 最简单的NamedPiep程序[秋镇菜]-初学者看看
  5. 解析Winndows 2000/XP物理内存管理
  6. 推荐3款移动端网页开发调试神器
  7. 上一页下一页_多页PDF文件也能很快合为一页PDF文件?这个小技巧可以办到
  8. 机器学习中用到的概率知识_山顶洞人学机器学习之——几种常见的概率分布
  9. python编码操作技巧总结
  10. “嘿,我们又见面了!”