gpt4 book ai didi

Java:存储对静态类的引用是可变的

转载 作者:行者123 更新时间:2023-11-29 08:25:51 25 4
gpt4 key购买 nike

我需要在变量中存储对类的引用,这样我就可以在变量上调用该类的静态方法。

主.java

public class Main {

private static SomeClass cls;

private static void main(String[] args) {
**cls = SomeClass;**
cls.doSomething();
}

一些类.java

public class SomeClass() {
public static doSomething() {
}
}

cls = SomeClass 在这里不起作用,但我也不想实例化 SomeClass。

有人能帮忙吗?

最佳答案

这没有意义。

你可以写

private static SomeClass cls = null;

(或者不分配,因为无论如何默认值都是null)

cls.doSomething()

不会抛出 NullPointerException 并且会调用静态方法。

但是,没有理由这样做。无论您将什么分配给 cls 变量,它总是会调用 SomeClass.doSomething(),因此消除该变量并简单地调用 会更有意义SomeClass.doSomething().

The idea is that cls can reference several classes based on some condition which is not provided in the code above

这个想法行不通。 cls 变量的编译时类型将决定被调用的static 方法的类。因为它只能有一个类型,所以它总是相同的 static 方法。

关于Java:存储对静态类的引用是可变的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53259315/

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