我有一个类有相当数量的静态变量,并不是所有的都被初始化为它们的默认值(例如,我有一个布尔值,我初始化为true ,Set I初始化为新的Set()等)。这个类有点像一个控制器,可以在其他类上运行。在完成对一个类的操作之后,我想使用(如果存在的话)将它的所有静态变量重新初始化为它们的原始值,这是Java API的一部分,因此我不必制作“reinitializeClassVariables ()“方法,其中大约有十几个变量,每当我对类中声明的静态变量进行任何更改时都需要更新。有任何想法吗?重新初始化一个类的静态变量到它们的原始值java
回答
不,没有内置。您可以使用反射或字节码操作来完成某些操作,但这并不值得,而且会让这一切变得更加复杂。也许你可以将静态变量重构成一个新类,然后在“完成时”重置一个新实例。
它做一个类工作后,我想所有的静态变量的初始化到其原始值
认真听起来像是你将与实例更好变量。然后,您可以使用new
创建一个新类的实例(或包含您的参数的类),并且所有变量都将初始化为其初始值。事情是这样的:
// All parameters (static if you so like)
static ControlParams controlParams = new ControlParams();
...
// Reset parameters
controlParams = new ControlParams();
东西是在Java API的一部分,让我没有做出
reinitializeClassVariables()
没有, API中没有这样的东西(实际上,它必须是我相信的语言规范的一部分)。在你的用例中使用静态变量是一个非常糟糕的选择。
同意。绝对需要做出这些实例变量。这与静态的东西没有任何意义。 –
如果它是可变的,那么静态可能没有意义。 (+1) –
确实。我只是认为,因为他的变量最初是静态的,所以如果'controlParams'不是静态的,他会进行更多的重构。 :-) – aioobe
- 1. 静态变量重新初始化
- 2. 静态变量初始化
- 3. 静态变量初始化
- 4. 静态变量初始化
- 5. 初始化静态变量
- 6. 重新初始化新实例的静态变量
- 7. PHP的静态变量初始化
- 8. 静态变量的初始化顺序
- 9. Java变量值初始化
- 10. 获得重新初始化的静态变量
- 11. 重新初始化Java类
- 12. 静态变量初始化从一个文件初始化一次
- 13. 在VB中重新初始化变量回到开始状态
- 14. XamlParseException初始化一个静态类
- 15. 初始化静态final变量声明与初始化在Application.OnCreate()
- 16. 初始化后可以初始化静态变量吗?
- 17. 初始化静态向量
- 18. 如何在JavaScript静态类中初始化静态变量?
- 19. 静态成员变量初始化
- 20. 静态只读变量初始化
- 21. 静态变量初始化顺序
- 22. 静态成员变量初始化C++
- 23. 静态变量未初始化
- 24. 初始化静态最终变量
- 25. C++是静态变量初始化= atomic?
- 26. 初始化一个变量到它自己的未定义值
- 27. 在C99中使用静态变量初始化静态变量
- 28. 静态初始化从超类变量在每个子类
- 29. Java - 静态类及其父初始化
- 30. 如何用另一个静态变量初始化静态变量?
据我所知,不幸的是没有任何Java API支持重新初始化变量。你必须自己做。 – Naved