当前位置:首页 » 编程语言 » java获取当前类名

java获取当前类名

发布时间: 2022-08-11 10:23:59

A. 如何在java方法中获得当前方法的名称

在java方法中获得当前方法的名称方法:

一、获得当前类名:

Java代码

  • this.getClass().getName();

  • 二、获得当前方法名臣:
    JDK1.4

    Java代码

  • newException().getStackTrace()[i].getMethodName();//其中i=0就是当前的类的方法名字;i==1就是调用者的方法

  • JDK1.5之后可用

    Java代码

  • Thread.currentThread().getStackTrace()[1].getMethodName();//具体使用数组的那个元素和JVM的实现有关,我在SUNJDK6下面测试的是第二个元素,具体说明可以查看Thread.getStackTrace方法的javadoc

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

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

或者你可以用这个trick:

public class Test{
public static void main(String[] args) {
try {
System.out.println(args[100000]);
} catch (Exception e) {
System.out.println(e.getStackTrace()[0].toString().split("\\.main\\(")[0]);
}
}
}

C. java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。
import java.io.File;
import java.lang.reflect.Method;
public class LoopApp {
public static void main(String[] args) throws Exception {
String packageName = "";
File root = new File(System.getProperty("user.dir") + "\\src");
loop(root, packageName);
}
public static void loop(File folder, String packageName) throws Exception {
File[] files = folder.listFiles();
for (int fileIndex = 0; fileIndex < files.length; fileIndex++) {
File file = files[fileIndex];
if (file.isDirectory()) {
loop(file, packageName + file.getName() + ".");
} else {
listMethodNames(file.getName(), packageName);
}
}
}
public static void listMethodNames(String filename, String packageName) {
try {
String name = filename.substring(0, filename.length() - 5);
Object obj = Class.forName(packageName + name);
Method[] methods = obj.getClass().getDeclaredMethods();
System.out.println(filename);
for (int i = 0; i < methods.length; i++) {
System.out.println("\t" + methods[i].getName());
}
} catch (Exception e) {
System.out.println("exception = " + e.getLocalizedMessage());
}
}
}

D. java中用super来获取类名为什么得到的是派生类的类名

这里要说明一下,super和this的区别,this表示当前对象的指针(或叫引用),super是一个java关键字,用于访问父类的成员和方法。
所以调用的getClass()的确是父类方法,但是当前对象已经是子类了,而不是父类,你必须明白,super不代表父类对象。
如果你想要得到父类对象,需要通过反射机制的到,代码如下:
Class c = 子类.class;
c.getSuperclass().getName();
这解释明白么?还有什么疑问?

E. JAVA 获取class对象 类名.class Class.forName()两种方法什么情况下使用 为什么

.class 是获得当前对象的句柄。 class.forName()用于反射,java虚拟机通过class.forName(class 名) 寻找到 名字为class 的 类文件装载进 虚拟机。 object ob=clsss.forName("class 名").instences(); 相当于实例化一个对象

F. 我刚学java,一个java程序的两个问题,很简单,看懂的回答,目的是给三个职业发工资

this.getClass().getName()获取当前类的类名,包含包名,如果你只想得到类名那就做个替换:
this.getClass().getName().replace("com.wy.test2.", "")
父类Staff有三个子类分别是Manager, Engineer, Worker,这三个子类实际上都继承了父类方法paySalary(),因此在每个子类调用paySalary()方法时,this.getClass().getName()得到的是子类类名。

G. java 获取当前的对象名

  1. this.getClass().getSimpleName() //包名+类名

  2. this.toString() //指针地址

  3. this代表当前对象

H. Java中怎样得到当前类名

把this改成
new 类名().getClass().getName()就可以了

I. java中getClass().getName()有什么作用

getClass返回的是Class对象,这个对象用来描述你现在所使用的对象的类信息,比如有
Class A,
A a;
a.getClass();
将返回a对象的信息描述,当然这些信息都是动态的,比如a对象的某个属性有什么值阿等等,你可以在程序运行时通过写代码动态的获得这些信息。getClass().getName()是用来返回Class对象所代表的具体对象的名称。

J. java怎么用代码获取类所在的包名

String packageName = A.class.getPackage().getName();
或者:
packageName = new A().getClass().getPackeage().getName();
即可获得包名了。

热点内容
用近似归算法 发布:2025-01-21 00:51:56 浏览:517
php显示数据库中图片 发布:2025-01-21 00:44:34 浏览:145
如何在服务器中找文件 发布:2025-01-21 00:38:50 浏览:911
Cmdpython命令 发布:2025-01-21 00:30:38 浏览:758
mac常用解压 发布:2025-01-21 00:01:47 浏览:691
linuxcpu使用 发布:2025-01-21 00:00:59 浏览:849
成套供应配电柜有哪些配置 发布:2025-01-21 00:00:52 浏览:121
GO编译器PDF 发布:2025-01-21 00:00:52 浏览:704
osu上传成绩 发布:2025-01-20 23:59:57 浏览:641
了解sql 发布:2025-01-20 23:58:39 浏览:656