gpt4 book ai didi

java - 使用 Class.forName() 实例化单例对象?

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

我想从字符串中实例化一个类的实例类的名称。 (使用 Class.forName().newInstance()。)

这就是问题所在:我希望该实例是一个单例..我可以使用单例模式来做到这一点,除了newInstance 调用类的默认构造函数,对于单例,该构造函数必须是“私有(private)的”。

有解决办法吗?我可以想到一种不那么优雅的方式这样做(使用散列图作为查找表..),但更喜欢更好的解决方案..

谢谢,

最佳答案

经典的单例也有一个静态的 getInstance() 方法——通过反射而不是使用 newInstance() 来调用它。是的,这是更多的工作,但事实就是这样......

或者您可以使用 setAccessible()无论如何调用私有(private)构造函数,但你会破坏单例并下 hell 。

第三,您可以完全避免单例并找到更好的解决方案(通常有)。

关于java - 使用 Class.forName() 实例化单例对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1127716/

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