zoukankan      html  css  js  c++  java
  • Java Class类以及获取Class实例的三种方式

    T - 由此 Class 对象建模的类的类型。例如,String.class 的类型是Class<String>。如果将被建模的类未知,则使用Class<?>。
     
    [java] view plain copy
     
     print?
    1. public final  
    2.     class Class<T> extends Object  implements java.io.Serializable,   
    3.                   java.lang.reflect.GenericDeclaration,   
    4.                   java.lang.reflect.Type,  
    5.                               java.lang.reflect.AnnotatedElement  
     
    获取Class实例的三种方式:
    1. 运用.class的方式来获取Class实例。对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例。例如,Integer.TYPE 与 int.class是等效的,都是int。
    2. 利用对象调用getClass()方法获取该对象的Class实例;
      public class Test {
          public static void main(String[] args)  {
              System.out.println("第一种实例化:");
              System.out.println(int.class);
              System.out.println(Integer.TYPE);
              System.out.println("第二种实例化:");
              Test test = new Test();
              System.out.println(test.getClass().getName());
              System.out.println(test.getClass().getSimpleName());
          
          }
      }
    3. 使用Class类的静态方法forName(),用类的名字获取一个Class实例(static Class forName(String className) ),这种方式灵活性最高,根据类的字符串全名即可获取Class实例,可以动态加载类,框架设计经常用到;
     
    Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的defineClass方法自动构造的,因此不能显式地声明一个Class对象。
     
    虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。运行程序时,Java虚拟机(JVM)首先检查是否所要加载的类对应的Class对象是否已经加载。如果没有加载,JVM就会根据类名查找.class文件,并将其Class对象载入。
     
    基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也都对应一个 Class 对象。 
     
    每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。
     
    一般某个类的Class对象被载入内存,它就用来创建这个类的所有对象。
     
     
    主要方法:

    newInstance

    public T newInstance()
                  throws InstantiationException,
                         IllegalAccessException
    创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的new 表达式实例化该类。
    抛出:IllegalAccessException - 如果该类或其 无参 构造方法是不可访问的。InstantiationException - 如果此Class 表示一个抽象类、接口、数组类、基本类型或 void; 或者该类没有无参构造方法。
  • 相关阅读:
    数据访问 之 修改数据 (重要)---2017-04-27
    数据访问 之 删除操作 ------ 2017-04-27
    连接数据库的注册、登录----2017-04-26
    数据访问(创建链接、读取数据、例题)--2017-04-25
    C/S 和B/S 详解 --- 2017-04-25
    二阶段测试改错与反思(数据库+面向对象)----2017-04-24
    qq面板(仿版,未完待续中。。。。)---2017-04-24
    网站设计需要注意的20个常犯错误---2017-04-23
    数据库四大特性;
    数据库部分---查询-简单查询;
  • 原文地址:https://www.cnblogs.com/zhaideyou/p/6005854.html
Copyright © 2011-2022 走看看