java如何在main方法中得到(打印)其所在类的类名

java如何在main方法中得到(打印)其所在类的类名,第1张

不创建实例?这个要求太奇怪了。也许只有jvm知道吧。能问一下为什么要这么做?

或者你可以用这个trick:

public class Test{

public static void main(String[] args) {

try {

Systemoutprintln(args[100000]);

} catch (Exception e) {

Systemoutprintln(egetStackTrace()[0]toString()split("\\main\\(")[0]);

}

}

}

class parent{

/

获取子类的类名

/

public String getClassName(){

return thisgetClass()getSimpleName();

}

//父类中直接调用

String className = getClassName();

}

限定!)利用它的单调性求最值与利用均值不等式

下面是能判断是否指定类的子类。但是要想全部查询。

这个不太可能吧。

Class c = ArrayListclass;

cisPrimitive(); //判断c是否为基本数据类型

cisAssignableFrom(Listclass); //判断c是否是List类的子类或父类

cgetGenericType(); //得到泛型类型

不过呢。你可以看看 eclipse 中的实现。就是你点击一个类。然后按 F4 就能从 "Type Hierarchy"。就能看到所有子类了。你可以搜搜看。

ClassforName()是根据类名称加载类 比如有一个类名为comabcAAA 此处ClassforName(‘comabcAAA ’)newInstance()就会创建一个AAA对象而class一般用来获取类的通用属性 比如AAAclassgetDeclareMethod()是获取AAA类的所有声明的方法 主要用于反射机制

给你写了3个类:

A类:

package cntest;

public class A {

 public void test(){

  Systemoutprintln(thisgetClass());

  Systemoutprintln(thisgetClass()getSimpleName());

  Systemoutprintln(thisgetClass()getName());

 }

}

B类:

package cntest;

public class B extends A{

 

}

Test类:

package cntest;

public class Test {

 /

   @param args

  /

 public static void main(String[] args) {

  B b = new B();

  btest();

 }

}

结果:

class cntestB

B

cntestB

你要知道,在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来时的那个类型的实例对象,所以在父类中你可以中this获取到子类的信息!

不止一层继承关系时,你可以根据下面:

A类:

package cntest;

public class A {

 public void test(){

  Systemoutprintln(thisgetClass());

  Systemoutprintln(thisgetClass()getSimpleName());

  Systemoutprintln(thisgetClass()getName());

  Systemoutprintln(thisgetClass()getSuperclass());

  Systemoutprintln(thisgetClass()getSuperclass()getSimpleName());

  Systemoutprintln(thisgetClass()getSuperclass()getName());

 }

}

B类:

package cntest;

public class B extends A{

 B(){

//  Systemoutprintln("B");

 }

}

C类:

package cntest;

public class C extends B{

 C(){

//  Systemoutprintln("C");

 }

}

Test类:

package cntest;

public class Test {

 /

   @param args

  /

 public static void main(String[] args) {

  C c = new C();

  ctest();

 }

}

结果:

class cntestC

C

cntestC

class cntestB

B

cntestB

以上就是关于java如何在main方法中得到(打印)其所在类的类名全部的内容,包括:java如何在main方法中得到(打印)其所在类的类名、java怎么获取某个父类(或接口)的所有子类、java中一个 类.class 发法 获取的描述类的对象,是 否 可以找到其 所有的子类 的名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存