java - Java:存储对静态类的引用是可变的
问题描述
我需要将一个类的引用存储在一个变量中,这样我就可以在该变量上调用该类的静态方法。
主.java
public class Main {
private static SomeClass cls;
private static void main(String[] args) {
**cls = SomeClass;**
cls.doSomething();
}
SomeClass.java
public class SomeClass() {
public static doSomething() {
}
}
cls = SomeClass 在这里不起作用,但我也不想实例化 SomeClass。
任何人都可以帮忙吗?
解决方案
这是没有意义的。
你可以写
private static SomeClass cls = null;
(或保留它未分配,因为默认值null
无论如何都是)
和
cls.doSomething()
不会抛出NullPointerException
,会调用静态方法。
但是,没有理由这样做。无论您为cls
变量分配什么,它都会调用SomeClass.doSomething()
,因此消除该变量并简单地调用 会更有意义SomeClass.doSomething()
。
这个想法是 cls 可以根据上面代码中未提供的某些条件引用多个类
这个想法行不通。cls
变量的编译时类型将决定static
被调用方法的类。因为它只能有一个类型,所以它总是相同的static
方法。
推荐阅读
- java - 如何在 Spring 安全性中使用 @PreAuthorize 获取参数
- c++ - c | c++函数返回优化
- atom-editor - 如何在 Atom 编辑器中忽略特定的 Pylint 消息?
- html - CSS:将文本放置在 Flexbox 中的图像上
- apache - Apache 为静态文件和 webapp 提供服务器
- python-3.x - 熊猫:分组归一化
- python - discord.py 如何制作掷骰子命令
- javascript - 在Javascript中查找要更改的位数以获得等效的二进制数
- roblox - 房子怎么定位?罗布乐思
- protractor - 如何在分片测试时仅使用量角器和黄瓜生成一份报告?