java中用静态方法返回类名

简介: 54powerman最初碰到这个问题,首先想到的是getClass()方法,如下尝试:public static String getClassName(){ String className=null; className=this.getClass().getName();//静态方法中不可访问变量 this return className;}结果失败。
54powerman
最初碰到这个问题,首先想到的是getClass()方法,如下尝试:
public static String getClassName()
{
 String className=null;
 className=this.getClass().getName();//静态方法中不可访问变量 this
 return className;
}
结果失败。
偶然发现有人利用异常处理可以获得,真是另辟蹊径,巧妙的很。
public static String getClassName()
{
 String className=null;
 try {
  throw new Exception();
 } catch (Exception e) {
  StackTraceElement[] element=e.getStackTrace();
  className=element[0].getClassName();
 }
 return className;
}
记录下来备用。 
目录
相关文章
|
5月前
|
前端开发 Java API
类加载器“如果我定义了一个类名与Java核心类类名相同,那它还能被加载吗?”
类加载器“如果我定义了一个类名与Java核心类类名相同,那它还能被加载吗?”
【面试题精讲】Java静态方法为什么不能调用非静态成员?
【面试题精讲】Java静态方法为什么不能调用非静态成员?
|
4天前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
14 3
|
6天前
|
Java
Java“非静态方法 ... 不能在静态上下文中被引用”解决
在Java中,“非静态方法……不能在静态上下文中被引用”的错误通常源于在静态方法中直接调用非静态方法。解决方法包括:1) 创建类的实例后调用;2) 将非静态方法改为静态方法;3) 重新评估和调整类的设计以避免此类问题。
|
4月前
|
安全 Java
探讨Java中静态变量在静态方法内部的使用及其注意事项
探讨Java中静态变量在静态方法内部的使用及其注意事项
36 1
|
3月前
|
存储 Java
Java中的静态变量与静态方法:应用与注意事项
Java中的静态变量与静态方法:应用与注意事项
|
4月前
|
设计模式 Java 测试技术
Java一分钟之-PowerMock:静态方法与私有方法测试
【6月更文挑战第4天】PowerMock是扩展Mockito的框架,用于模拟静态方法、构造函数和私有方法,以增强Java单元测试的隔离性和覆盖率。核心应用场景包括静态方法模拟、私有方法测试和Final类模拟。常见问题包括配置复杂、过度使用和忽略模拟的真实行为。解决方案包括遵循官方文档、谨慎使用PowerMock、精确控制模拟逻辑和遵循最佳实践。示例展示了如何模拟静态方法,通过添加PowerMock依赖和使用`PowerMockRunner`、`PrepareForTest`注解,以及`PowerMockito.mockStatic`和`verifyStatic`方法进行测试。
265 0
Java一分钟之-PowerMock:静态方法与私有方法测试
|
5月前
|
存储 Java
Java静态变量在静态方法内部无法改变值
在Java中,静态变量属于类本身,而非类的实例,因此可以在没有创建实例的情况下通过类名访问和修改。若在静态方法中无法改变静态变量的值,可能是因为逻辑错误、局部变量覆盖、误用实例访问或尝试修改`final`静态变量。要访问静态变量,直接通过类名调用即可。修改静态变量同样直接,只需通过类名加变量名并赋新值。静态变量与实例变量的主要区别在于生命周期、存储位置、访问方式和数据共享。静态变量在整个程序运行期间存在,所有实例共享,而实例变量每个对象独有。
|
5月前
|
Java
【JAVA学习之路 | 基础篇】static静态方法(类方法)
【JAVA学习之路 | 基础篇】static静态方法(类方法)
|
5月前
|
并行计算 Java API
Java 8中的接口默认方法和静态方法以及并行数组
【5月更文挑战第19天】Java 8引入了许多新特性,其中包括接口的默认方法和静态方法,以及并行数组的能力。这些特性增强了Java的面向对象编程模型和数组处理能力。让我们深入了解它们的概念和实践。
59 2