写一个静态方法,这个静态方法没有形式任何参数,在方法内,获得调用该静态方法所在类的class。
比如在Test.Class内的方法中调用静态方法,不传入什么参数,直接在静态方法内获取Test.Class。
怎么做?最好能适应jdk17
写一个静态方法,这个静态方法没有形式任何参数,在方法内,获得调用该静态方法所在类的class。
比如在Test.Class内的方法中调用静态方法,不传入什么参数,直接在静态方法内获取Test.Class。
怎么做?最好能适应jdk17
MethodHandles.lookup().lookupClass();
或者
Thread.currentThread().getStackTrace()[1].getClassName()
第一种更好点,内部是调用
jdk.internal.reflect.Reflection#getCallerClass
4 回答1.1k 阅读✓ 已解决
4 回答807 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答661 阅读✓ 已解决
2 回答1.6k 阅读
2 回答1.6k 阅读
获取调用者 class 跟参数没关系,不需要强调这个。
通过获取堆栈信息,找到调用者的 class 是谁。