java – 从继承的静态方法获取调用者类名
发布时间:2020-12-14 06:03:27 所属栏目:Java 来源:网络整理
导读:我有以下类(注意方法是静态的): class Base{ public static void whosYourDaddy() { Class callerClass = // what should I write here to get caller class? System.out.print(callerClass.getName()); }}Class A extends Base{ public static void foo()
我有以下类(注意方法是静态的):
class Base { public static void whosYourDaddy() { Class callerClass = // what should I write here to get caller class? System.out.print(callerClass.getName()); } } Class A extends Base { public static void foo() { A.whosYourDaddy(); } } Class B extends Base { public static void bar() { B.whosYourDaddy(); } } 当我打电话时: A.foo(); B.bar(); 我想获得输出: 解决方法
你可以做什么,但不应该:)使用Throwable getStackTrace方法.除了气味,这是非常缓慢的,因为获得堆栈跟踪并不是那么快.但是你将获得一个StackTraceElement数组,每个都将包含调用它的类的类(你也可以获取文件和行,如果你将两者分开:你可以获得一个可点击的链接日食,不是说我曾做过这样的事情……).
就像是 String className = new Throwable().getStackTrace()[1].getClassName(); 希望有所帮助:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |