Java中类名.class获得当前类的对象,如果这个类实例化了很多对象呢会获得哪一个

Java中类名.class获得当前类的对象,如果这个类实例化了很多对象呢会获得哪一个,第1张

class获得的是类的Class对象,可不是这个类的对象,用Class 变量名接收,用这个Class对象通过反射机制可以通过newInstence创建出这个类的对象而且只能调用无参数构造器

使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:

package test;

import javalangreflectField;

import javalangreflectMethod;

public class Demo2 {

String username = "sss";

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException, NoSuchMethodException {

Demo2 t = new Demo2();

if (Demo2class == tgetClass()) {

Systemoutprintln("equal");

}

// 获取类名

Systemoutprintln(tgetClass()getName());

// 获取父类名

Systemoutprintln(tgetClass()getSuperclass());

//获取类中某个属性

Field f = tgetClass()getField("username");

//获取类中某个方法

Method m = tgetClass()getDeclaredMethod("main", String[]class);

}

java获得对象的方法

通过new关键字来进行获取对象。

如:Test  test=new  Test();

通过反射手段,调用javalangclass或者javalangreflectConstructor中的newInstance()进行获取对象。

如:Test  test=(Test)Classforname("comtestTest")newInstance();

Test test=TestclassnewInstance();

通过反序列化获取对象

如:testInputStream textin = new ObjectInputStream(new FileInputStream     ("testobj"));

Test test= (Test) inreadObject();

clone()克隆方法

Test test2=(Test)test1clone();

1、Test t = new Test()Class clazz = tgetClass()Systemoutprintln(clazzgetCanonicalName())Systemoutprintln(clazzgetSimpleName())

2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect()Systemoutprintln(testReflectgetClass()getName())// 结果 netxsoftlabbaikeTestReflect}}

3、Java程序

以上就是关于Java中类名.class获得当前类的对象,如果这个类实例化了很多对象呢会获得哪一个全部的内容,包括:Java中类名.class获得当前类的对象,如果这个类实例化了很多对象呢会获得哪一个、java 获取对象的数据类型的方法、java 获得对象几种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9342076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存