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

  • 相关阅读:
    Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
    练oj时的小技巧(大多都在oj记录里,这是被忘记的部分)
    HDU 3032 (SG打表找规律)
    SG 大法(Sprague-Grundy函数)
    基于Linux的MySQL基本操作
    java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.解决方法
    手把手教你安装和配置MYSQL数据库
    理解Python闭包,这应该是最好的例子
    SQL基础
    MySQL令人咋舌的隐式转换
  • 原文地址:https://www.cnblogs.com/luocixin/p/6843801.html
Copyright © 2011-2022 走看看