java反射(java.lang.reflect) ---普通单例模式唯一性问题
Posted 喜欢和习惯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java反射(java.lang.reflect) ---普通单例模式唯一性问题相关的知识,希望对你有一定的参考价值。
1. 普通的饱汉式、饿汉式
package org.bighead.test2; public class TestPrivate { private String str = "strPrivate"; private static final TestPrivate TESTPRIVATE = new TestPrivate(); // 饱汉式、饿汉式 private TestPrivate() { super(); System.out.println(str); } public TestPrivate getInstance(){ return TESTPRIVATE; } public void toPrint(){ System.out.println("私有构造-公开方法--单实例"); } }
反射创建实例、调用方法(实例可访问的)
package org.bighead.test2; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class TestDefaultSub { public static void main(String[] args) { Class<TestPrivate> clazz = TestPrivate.class; try { Constructor<?> constructor = clazz.getDeclaredConstructor(); constructor.setAccessible(true); TestPrivate tp = (TestPrivate) constructor.newInstance(); tp.toPrint(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (InvocationTargetException e1) { e1.printStackTrace(); } } }
2. 并发也会影响
以上是关于java反射(java.lang.reflect) ---普通单例模式唯一性问题的主要内容,如果未能解决你的问题,请参考以下文章
moon 反射机制---java.lang.reflect包