• 反射(1)


    1反射是什么

    对于任意一个类,都能够知道这个类的所有属性和方法;  对于任意一个对象,都能够调用它的任意一个方法和属性;

    1 通过一个对象获得完整的包名和类名

      代码如下:   

        package net.xsoftlab.baike;
         public class TestReflect {
            public static void main(String[] args) throws Exception {
                TestReflect testReflect = new TestReflect();
                System.out.println(testReflect.getClass().getName());
          }
        }
     // 结果 net.xsoftlab.baike.TestReflect
    2 实例化Class类对象
    package net.xsoftlab.baike;
    public class TestReflect {
     public static void main(String[] args) {
      Class<?> class1 = null;
      Class<?> class2 = null;
      Class<?> class3 = null;
      try {
       class1 = Class.forName("net.xsoftlab.baike.TestReflect");
       class2 = new TestReflect().getClass();
       class3 = TestReflect.class;
       System.out.println("类名称   " + class1.getName());
          System.out.println("类名称   " + class2.getName());
          System.out.println("类名称   " + class3.getName());
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }
    运行结果:
    类名称   net.xsoftlab.baike.TestReflect
    类名称   net.xsoftlab.baike.TestReflect
    类名称   net.xsoftlab.baike.TestReflect
     
    3
    3.1主入口
    package net.xsoftlab.baike;
    import com.in.tttt;
    public class TestReflect extends tttt{
     public static void main(String[] args) {
      try {
       Class<?> clazz = Class.forName("com.in.tttt");
       Class<?> parentClass = clazz.getSuperclass();
       System.out.println("clazz的父类为:" + parentClass.getName());
       Class<?> intes[] = clazz.getInterfaces();
       System.out.println("clazz实现的接口有:");
             for (int i = 0; i < intes.length; i++) {
                 System.out.println((i + 1) + ":" + intes[i].getName());
             }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }
    3.2父类

    package com.in;

    public class tttt implements dddd{

     public void mm(){

      System.out.println("ddd");

     }

     @Override

     public void d() {

      System.out.println("dd1");

     }

    }

    3.3接口类

    package com.in;

    public interface dddd {

     public void d();

    }

    运行结果:

    clazz的父类为:java.lang.Object
    clazz实现的接口有:
    1:com.in.dddd

  • 相关阅读:
    用javascript实现简单的用户登录验证
    JS创建数组的三种方法
    JS中的数据类型
    原始值和引用值
    html为什么用雪碧图的优缺点
    html,将元素水平,垂直居中的四种方式
    使用display:none和visibility:hidden隐藏的区别
    jsonview注解、RequestBody 、拦截
    02.实现图形验证码
    spring注解使用
  • 原文地址:https://www.cnblogs.com/luocixin/p/6843801.html
Copyright © 2020-2023  润新知