zoukankan      html  css  js  c++  java
  • java反射机制基础

    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 }

    执行结果:

    欢迎转载,让更多的人看到吧,记得注明出处哦!
  • 相关阅读:
    Object C学习笔记2-NSLog 格式化输出数据
    NSPoint 位置
    NSNull空值
    工商银行卡 安全码是什么
    查看苹果开发者账号类型
    IOS中录音后再播放声音太小问题解决
    解决RegexKitLite导入报错问题
    iOS开发--OC常见报错
    UIImagePickerController
    UIPageViewController
  • 原文地址:https://www.cnblogs.com/liutao1122/p/6924943.html
Copyright © 2011-2022 走看看