在Java中,可以通过以下几种方法获取类名:
使用 `getClass()` 方法和 `getName()` 方法
```java
public class MyClass {
public static void main(String[] args) {
MyClass obj = new MyClass();
String className = obj.getClass().getName();
System.out.println("类名: " + className);
}
}
```
适用于非静态方法
```java
public class MyClass {
public void myMethod() {
String className = this.getClass().getName();
System.out.println("类名: " + className);
}
}
```
适用于静态方法
```java
public class MyClass {
public static void myStaticMethod() {
String className = Thread.currentThread().getStackTrace().getClassName();
System.out.println("类名: " + className);
}
}
```
使用 `getName()`、`getCanonicalName()` 和 `getSimpleName()` 方法
```java
public class TestClass {
public static void main(String[] args) {
String className = TestClass.class.getName();
String canonicalName = TestClass.class.getCanonicalName();
String simpleName = TestClass.class.getSimpleName();
System.out.println("类名: " + className);
System.out.println("规范类名: " + canonicalName);
System.out.println("简称: " + simpleName);
}
}
```
使用 `__progname` 变量(仅适用于类Unix系统)
```java
public class MyClass {
public static void main(String[] args) {
System.out.println("程序名: " + __progname);
}
}
```
这些方法可以帮助你在Java中获取当前运行的类名。根据具体需求和场景,可以选择合适的方法来获取类名。