在面向对象编程中,静态方法属于类而非类的实例。有时我们需要在静态方法中获取当前类的名称,这在日志记录、反射操作或工厂模式等场景中很有用。
public class MyClass {
public static void printClassName() {
String className = MyClass.class.getName();
System.out.println("Class name: " + className);
}
// 或者使用更通用的方式
public static void printClassNameGeneric() {
String className = new Object(){}.getClass().getEnclosingClass().getName();
System.out.println("Class name: " + className);
}
}
class MyClass:
@staticmethod
def print_class_name():
print(f"Class name: {MyClass.__name__}")
# 或者使用更通用的方式
@classmethod
def print_class_name_generic(cls):
print(f"Class name: {cls.__name__}")
class MyClass {
static printClassName() {
console.log(`Class name: ${this.name}`);
}
}
// 或者
class MyClass {
static printClassName() {
console.log(`Class name: ${new.target.name}`);
}
}
public class MyClass
{
public static void PrintClassName()
{
Console.WriteLine($"Class name: {typeof(MyClass).Name}");
}
}
class MyClass {
public static function printClassName() {
echo "Class name: " . __CLASS__;
}
}
MyClass.class
)而非使用反射机制__CLASS__
、typeof
等)