zoukankan      html  css  js  c++  java
  • 获取Class对象方式

    在java中,每个class都有一个相应的Class对象,当编写好一个类,编译完成后,在生成的.class文件中,就产生一个Class对象,用来表示这个类的类型信息。获得Class实例的三种方式:

    1). 利用对象调用getClass()方法获取该对象的Class实例
    2). 使用Class的静态方法forName(),用类的名字获取一个Class实例
    3). 运用.calss的方式获取Class实例,对基本数据类型的封装类,还可以采用.TYPE来获取对应的基本数据类型的Class实例。

    其中getClass和.class区别在如下:
    abstract class PersonInfo {
    private int age;
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    }

    public class ManInfo extends PersonInfo {
    private int height;
    public int getHeight() {
    return height;
    }

    public void setHeight(int height) {
    this.height = height;
    }

    public static void main(String[] args) {
    PersonInfo personInfo = new ManInfo();
    System.out.println(personInfo.getClass().getName());
    System.out.println(PersonInfo.class.getName());
    }
    }

    运行结果:

    com.coship.test.ManInfo
    com.coship.test.PersonInfo

      // 使用Class的静态方法forName(),用类的名字获取一个Class实例
        try {
          Class c2 = Class.forName("Point");
          System.out.println(c2.getName()); // 结果:Point
          Point pp = (Point) c2.newInstance(); //一旦某个类型的Class对象已经被加载到内存,就可以用它来产生该类型的所有对象。
          //newInstance()调用类中缺省的构造方法。
          pp.output();
        } catch (Exception e) {
          e.printStackTrace();
        }

    采用.TYPE来获取对应的基本数据类型的Class实例:

      // 运用.calss的方式获取Class实例(基本类型)
      Class c4 = int.class;
      System.out.println(c4.getName()); // 结果:int

      // 运用.class的方式获取Class实例(基本数据类型的封装类)
      Class c5 = Integer.TYPE;
      System.out.println(c5.getName()); // 结果:int
      Class c6 = Integer.class;
      System.out.println(c6.getName()); // 结果:java.lang.Integer

  • 相关阅读:
    OpenStack trove原理及配置实践
    [转]在首席架构师手里,应用架构如此设计
    Servlet入门(一),超级详细!!!看完就会!!!!
    Redis入门
    Linux笔记02—Linux进阶应用
    Linux笔记01—linux基础入门
    Linux笔记00—计算机概论
    Linux上安装jdk
    SpringBoot入门
    排查问题的五个步骤
  • 原文地址:https://www.cnblogs.com/shz365/p/3570926.html
Copyright © 2011-2022 走看看