.getClass();

Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息。
可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得。
获得此对象后可以利用此Class对象的一些反射特性进行操作,
例如:
this.getClass().newInstance(); //用缺省构造函数创建一个该类的对象
this.getClass().getInterfaces(); //获得此类实现的接口信息
this.getClass().getMethods();//获得此类实现的所有公有方法

Class.forName(" ... JDBC driver class name...."); // Class类的静态方法forName, 向DiverManager注册这个JDBC driver类

getClass()是Object类中的一个方法,就是用来获取类本身的(获得类本身之后就可以使用newInstance()方法进行实例)。
class Person{
}
public class PersonClassDemo{
  public static void main(String[] args){
    Person per = new Person() ;
    System.out.println(per.getClass().getName());
  }
}
以上代码返回的结果是Person对象所属的“包.类”的路径。
此外获得Class的另外两种方法,
1、“类.class”形式,例如Person.class。
2、通过Class类的静态方法“Class.forName("包.类路径")”。

时间: 2024-11-08 09:05:03

.getClass();的相关文章

GetClass与RegisterClass的应用一例

这是转来的一篇文章,我自己在项目中也使用到了类似于根据类名创建类实例并调用相应函数的功能.具体代码我会在今后发布出来. 利用GetClass与RegisterClass可以实现根据字符串来实例化具体的子类,这对于某些需要动态配置程序的场合是很有用的.其他的应用如子窗体切换,算法替换等都能得到应用. unit Example1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For

JavaScript getClass() 函数

定义和用法 getClass() 函数可返回一个 JavaObject 的 JavaClass. 语法 getClass(javaobj) 参数 描述 javaobj 一个 JavaObject 对象. 返回值 javaobj 的 JavaClass 对象. 说明 该函数可接受一个 JavaObject 对象作为其参数,并返回该对象的 JavaClass,即返回 JavaClass 对象.该 JavaClass 对象表示 Java 对象的 Java 类,而这个 Java 对象所表示的 Java

Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别(转)

一.Java的反射机制   每个Java程序执行前都必须经过编译.加载.连接.和初始化这几个阶段,后三个阶段如下图:  其中 i.加载是指将编译后的java类文件(也就是.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个Java.lang.Class对象,用来封装类在方法区的数据结构.即加载后最终得到的是Class对象,并且更加值得注意的是:该Java.lang.Class对象是单实例的,无论这个类创建了多少个对象,他的Class对象时唯一的!!!!.

各种封装——封装getClass

因为用Class获取元素时,有兼容性问题,需要分情况获取 显示判断是否可以用getElementsByClassName,若是不介意用就要先获取全部的元素,在用正则判断 function getClass(oParent,sClass){    if(oParent.getElementsByClassName)    {        return oParent.getElementsByClassName(sClass);    }    else    {        var arr=

java中instanceof和getClass()的作用

初学者难免有点混淆java中instanceof和getClass()的作用,  下面就来一一讲解.    父类A: class A { }     子类B: class B extends A { }      构造对象 Object o1 = new A(); Object o2 = new B(); 一.instanceof     演示一: 1.o1 instanceof A => true  2.o1 instanceof B => false  3.o2 instanceof A

【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别

Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串")  (注:类名字符串是包名+类名)  说明:装入类,并做类的静态初始化,返回Class的对象 3.实例对象.getClass()  说明:对类进行静态初始化.非静态初始化:返回引用运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所

ParameterizedType parameterizedType=(ParameterizedType) this.getClass().getGenericSuperclass(); Cl

getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类.接口.基本类型或 void)的直接超类的 Type 然后将其转换ParameterizedType.. getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组. [0]就是这个数组中第一个了.. 简而言之就是获得超类的泛型参数的实际类型.. 比如 超类 public class GenericDAO<T> { private Class<

java-----instanceof与getClass的区别

在比较一个类是否和另一个类属于同一个类实例的时候,我们通常可以采用instanceof和getClass两种方法通过两者是否相等来判断,但是两者在判断上面是有差别的,下面从代码中看看区别: [java] view plain copy public class Test { public static void testInstanceof(Object x) { System.out.println("x instanceof Parent:  "+(x instanceof Par

java中类名.class, class.forName(), getClass()区别

Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串")  (注:类名字符串是包名+类名)  说明:装入类,并做类的静态初始化,返回Class的对象 3.实例对象.getClass()  说明:对类进行静态初始化.非静态初始化:返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)

this.getClass().getClassLoader().getResourceAsStream(fileName)中的路径问题。(引用)

ClassLoader.readResourceAsStream 是从 classpath 中读取,也就是说目标资料必须在某个 classpath 节点路径中,比如在某个磁盘文件夹 bin 中或某个 jar 文件里面.放在 src 里面的话,eclipse 会自动在编译时默认地复制到 bin 目录下,当然你可以故意禁用这个默认功能(参数页中 Java > Compiler > Building 里面有个 Filtered Resources).eclipse 默认配置下你放在 src 下面就可