`

获得Class实例的三种方式:

    博客分类:
  • java
 
阅读更多

获得Class实例的三种方式:

 

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

 

public class TestClass {  
    public static void main(String[] args) {  
        // 在运行期间,如果我们要产生某个类的对象,java虚拟机会检测该类型的Class对象是否 
        //已被加载。如果没有加载,java虚拟机会根据类的名称找到.class文件并加载它。  
        //当new Point()的时候加载这个类,用forName构造实例的时候也加载该类。 只加载一次  
        System.out.println("before new Point()");  
        new Point();  
        System.out.println("after new Point()");  
        try {  
            Class.forName("Line");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
        // 利用对象调用getClass()方法获取该对象的Class实例  
        Point pt = new Point();  
        Class c1 = pt.getClass();  
        System.out.println(c1.getName()); // 结果:Point  
  
        // 使用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();  
        }  
  
        // 运用.class的方式获取Class实例(类)  
        Class c3 = Point.class;  
        System.out.println(c3.getName()); // 结果:Point  
  
        // 运用.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  
    }  
}  
  
class Point {  
    static {  
        System.out.println("loading point");  
    }  
  
    void output() {  
        System.out.println("x=" + x + ",y=" + y);  
    }  
    int x, y;  
}  
  
class Line {  
    static {  
        System.out.println("loading Line");  
    }  
} 

 

 运行结果:

before new Point()
loading point
after new Point()
loading Line
Point
Point
x=0,y=0
Point
int
int
java.lang.Integer

 

 

分享到:
评论

相关推荐

    Python语言基础:类的多重继承.pptx

    多重继承是指一个子类通过继承的方式来获得更多个父类的方法和属性。使用如下的例子来解释多重继承,假设要实现以下四种动物: Dog:狗 Bat:蝙蝠 Parrot:鹦鹉 Ostrich:鸵鸟 实例:类的多重继承实现,首先,主要的...

    python对象转字典的两种实现方式示例

    本文实例讲述了python对象转字典的两种实现方式。分享给大家供大家参考,具体如下: 一. 方便但不完美的__dict__ 对象转字典用到的方法为__dict__. 比如对象对象a的属性a.name=’wk’, a.age=18, 那么如果直接将使用...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    classy-node:适用于node.js的经典API

    首先实例化您的classy实例。 我们建议将您的客户ID和客户机密存储为环境变量。 var Classy = require('classy-node'); var classy = new Classy({ clientId: process.env.CLIENT_ID, clientSecret: process.env....

    jQuery完全实例.rar

    如果你想得到 jQuery对象,可以使用 $(this) 函数。 jQuery 代码: $("img").each(function(){ $(this).toggleClass("example"); }); -----------------------------------------------------------------------...

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    button按钮的四种监听及实例

    继续上次的,我们接下来要学习另外两种方式,三:Activity实现onClickListener接口;四:其他类实现onClickListener接口。  三:Activity实现onClickListener接口  1.直接在Activity上添加   public class ...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    本讲将通过实例比较ASP.NET下的三种典型URL重写方案——ISAPI重写(使用开源组件IIRF),ASP.NET2.0内置的urlMappings和基于自定义HTTPModule的URL重写(使用NBear.Web中的UrlRewriteModule实现),并探讨URL重写中...

    vc++ 开发实例源码包

    CCAMS系统是一种用于局域网下的CS模式的软件管理和监测系统源码 它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及...

    php webservice 实例

    一个php webservice实例,包括标准和非标准,标准包括SoapDiscovery.class.php生成wsdl文件类,还有一个获得天气预报实例

    伪类、伪元素实例

    由于状态是动态的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。伪元素是对元素中特定内容进行操作的,它所操作的层次比伪类更深一层,也因此它的动态性比伪类要...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例150 实例化Class类的5种方式 196 实例151 获得Class对象表示实体的名称 197 实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 ...

    Java 反射(Reflection) 经典实用例子

    Class ownerClass = Class.forName(className) :首先得到这个类的Class。 Field field = ownerClass.getField(fieldName):和上面一样,通过Class得到类声明的属性。 Object property = field.get(ownerClass) :...

Global site tag (gtag.js) - Google Analytics