gpt4 book ai didi

java - 哪个类调用了我的静态方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:12 24 4
gpt4 key购买 nike

假设我有一个带有静态方法的 Java 类,如下所示:

class A{    static void foo()    {        // Which class invoked me?    }}

并进一步假设类 A 有任意数量的子类:

class B extends A { }class C extends A { }class D extends A { }...

现在考虑以下方法调用:

A.foo();B.foo();C.foo();D.foo();...

我的问题是,方法 foo() 如何判断哪个类正在调用它?

最佳答案

它不能,这是静态方法问题的一部分。就编译器而言,A.foo()B.foo() 是完全相同的东西。事实上,它们编译成相同的字节码。没有比这更相似的了。

如果您确实需要此类信息,请使用单例并将 foo() 转换为实例方法。如果你还是喜欢静态语法,你可以建立一个门面A.foo()

关于java - 哪个类调用了我的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com