用java反射机制 创建单例模式的类可以吗?
答案:4 悬赏:60 手机版
解决时间 2021-02-20 15:44
- 提问者网友:眉目添风霜
- 2021-02-19 16:41
构造函数为private怎么调用?网上说是可以创建多个单例模式的实例
最佳答案
- 五星知识达人网友:woshuo
- 2021-02-19 17:47
通过
Constructor>[] getDeclaredConstructors()
这个方法获得所有构造器,然后可以得到私有的构造器,
使用 cons. setAccessible(true) 突破私有构造。
然后可以创建无限个单例实例。
Constructor>[] getDeclaredConstructors()
这个方法获得所有构造器,然后可以得到私有的构造器,
使用 cons. setAccessible(true) 突破私有构造。
然后可以创建无限个单例实例。
全部回答
- 1楼网友:有你哪都是故乡
- 2021-02-19 21:16
可以的,反射不在单例模式限制的范围内,就像普通单例模式在集群环境中就不起作用一样。
- 2楼网友:人類模型
- 2021-02-19 20:04
可以啊。反射机制可以找到java类的私有的构造方法
- 3楼网友:人類模型
- 2021-02-19 18:52
private 构造函数一般用于Singleton模式,指的是整个应用只有本类的一个对象,一般这种类都有一个类似getInstance()的方法!下面是一个Singleton的例子:
public class User {
private static User user = null;
private User(){
}
public User getInstance(){
if(null == user){
user = new User();
}
return user;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯