java反射机制:

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和

属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

代码示例:

Cats类:

  1. package cn.happy.demo;
  2.  
  3. @SuppressWarnings(value="unchecked")
  4. @Deprecated
  5. public class Cats {
  6. //无参构造
  7. public Cats(){}
  8. //带参构造
  9. public Cats(String str){}
  10. //无参方法
  11. public void into(){}
  12. //代参方法
  13. public void into(String str){}
  14. //内部类
  15. class inner{}
  16.  
  17. }

CatDemos类:

  1. package cn.happy.demo;
  2.  
  3. import java.lang.annotation.Annotation;
  4. import java.lang.reflect.Constructor;
  5. import java.lang.reflect.Method;
  6.  
  7. public class CatDemos {
  8.  
  9. public static void main(String[] args) {
  10.  
  11. Class<Cats> clas = Cats.class;
  12. Constructor[] con = clas.getDeclaredConstructors();
  13. System.out.println("*********获取构造方法*********");
  14. for (Constructor constructor2 : con) {
  15. System.out.println(constructor2.toString());
  16. }
  17. System.out.println("************获取构造方法结束**********");
  18. Method[] me = clas.getDeclaredMethods();
  19. System.out.println("***********获得公共方法开始************");
  20. for (Method method : me) {
  21. System.out.println(method.toString());
  22. }
  23. System.out.println("***********获得公共方法结束************");
  24. Method[] mt = clas.getMethods();
  25. System.out.println("************获取全部方法************");
  26. for (Method method : mt) {
  27. System.out.println(method.toString());
  28. }
  29. System.out.println("************获取全部方法结束************");
  30. System.out.println("***************获得包************");
  31. Package pg = clas.getPackage();
  32. System.out.println(pg.toString());
  33.  
  34. Annotation[] an = clas.getAnnotations();
  35. System.out.println("************获得全部注释*************");
  36. for (Annotation annotation : an) {
  37. System.out.println(annotation.toString());
  38. }
  39. System.out.println("*******************************");
  40. Class[] cs = clas.getDeclaredClasses();
  41. for (Class class1 : cs) {
  42. System.out.println(class1.toString());
  43. }
  44. System.out.println("***************************");
  45. try {
  46. Class s = Class.forName("cn.happy.demo.Cats$inner");
  47. System.out.println(s.getDeclaringClass());
  48. System.out.println(s.getPackage());
  49. System.out.println(s.getSuperclass());
  50. } catch (ClassNotFoundException e) {
  51. e.printStackTrace();
  52. }
  53. }
  54.  
  55. }

执行结果:

java反射机制基础的更多相关文章

  1. java反射机制(基础版)

    package com.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ja ...

  2. java反射机制基础总结

    1反射机制是啥? 反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 2反射机制有啥用? Reflection(反射) ...

  3. JAVA反射机制基础概念

    反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. J ...

  4. java基础知识(十一)java反射机制(上)

    java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...

  5. 【java基础】Java反射机制

    一.预先需要掌握的知识(java虚拟机)  1)java虚拟机的方法区:  java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区.方法区的主要作用是存 ...

  6. Java基础学习总结(75)——Java反射机制及应用场景

    什么是Java反射机制? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为 ...

  7. 夯实Java基础(二十一)——Java反射机制

    1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...

  8. Java 基础之详解 Java 反射机制

    一.什么是 Java 的反射机制?   反射(Reflection)是Java的高级特性之一,是框架实现的基础,定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: ...

  9. java基础知识(十一)java反射机制(下)

    1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...

随机推荐

  1. java读取pdf和MS Office文档

    有时候PDF中的文字无法复制,这可能是因为PDF文件加密了,不过使用PDFBox开源软件就可以把它读出来. 还有一个用于创建PDF文件的项目----iText. PDFBox下面有两个子项目:Font ...

  2. Mysql 5.7 CentOS 7 安装MHA

    Table of Contents 1. MHA简介 1.1. 功能 1.2. MHA切换逻辑 1.3. 工具 2. 环境 2.1. 软件 2.2. 环境 3. Mysql 主从复制 3.1. Mys ...

  3. Unet 项目部分代码学习

    github地址:https://github.com/orobix/retina-unet 主程序: ################################################ ...

  4. 计蒜客 X的平方根(二分法)

    设计函数int sqrt(int x),计算 xx 的平方根. 输入格式 输入一个 整数 xx,输出它的平方根.直到碰到文件结束符(EOF)为止. 输出格式 对于每组输入,输出一行一个整数,表示输入整 ...

  5. Django认证系统auth认证

    使用Django认证系统auth认证 auth认证系统可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配置不同需求的项目,Django支持扩展和自定义认证;会将用户信息写入到 ...

  6. WCF 配置App.Config

    <system.serviceModel> <bindings> <basicHttpBinding> <binding name="/> & ...

  7. 实战--使用lvs实现四层负载均衡,转发到后端nginx

    这个帖子讲得很细致,基本依照这个方案实践. 只是IP是按我自己虚拟机的IP来测试的. http://www.cnblogs.com/arjenlee/p/9262737.html ========== ...

  8. 「BZOJ3791」作业

    题解: 比正解的做法要复杂 正解直接确定了最多有2k-1段 并且可以证明2k-1是一定可以覆盖的 于是可以直接dp 我的想法是先覆盖一段黑的,然后白的覆盖上去 所以f[i][0/1/2][0/1/2] ...

  9. EF 数据版本号,处理具体使用方法 RowVersion / Timestamp 使用方法。进行自动处理并发修改

    /* * <div class="form-group"> // 原始 * <div class="form-group hidden"> ...

  10. 解决 Ionic 浏览器跨域问题

    <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Contro ...