zoukankan      html  css  js  c++  java
  • 反射(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

  • 相关阅读:
    栈stack,queue队列
    安装Redis
    为什么负负得正,减负数的意义
    关于数组的记忆
    k8s环境常用操作
    conda python虚拟环境使用locust
    jmeter csv set data中sharing mode的使用说明
    redis常用操作
    数据库基准测试标准 TPC-C or TPC-H or TPC-DS
    influxdb基本操作
  • 原文地址:https://www.cnblogs.com/luocixin/p/6843801.html
Copyright © 2011-2022 走看看