概述
import java.io.Serializable;
public class Foo implements Serializable {
private String str;
public Foo(String str) {
this.str = str;
}
}
Foo是一个可以序列化的实体类
public class FooTest {
private static final ReflectionFactory REFLECTION_FACTORY = ReflectionFactory.getReflectionFactory();
public static void main(String[] args) {
Class<Foo> clazz = Foo.class;
try {
Foo foo = newSerializableInstance(clazz);
} catch (InvocationTargetException e) {
}
}
public static <T> T newSerializableInstance(Class<T> clazz) throws InvocationTargetException {
Class<?> cl = clazz;
while(Serializable.class.isAssignableFrom(cl)) {
if ((cl = cl.getSuperclass()) == null) {
return null;
}
}
try {
Constructor<?> cons = cl.getDeclaredConstructor((Class<?>[]) null);
cons = REFLECTION_FACTORY.newConstructorForSerialization(clazz, cons);
cons.setAccessible(true);
return (T)cons.newInstance();
} catch (NoSuchMethodException e) {
return null;
} catch (InstantiationException e) {
return null;
} catch (IllegalAccessException e) {
return null;
} catch (IllegalArgumentException e) {
return null;
}
}
}
有兴趣的可以参看JDK
最后
以上就是重要丝袜为你收集整理的Java 通过ReflectionFactory 创建序列化的实例(原创)的全部内容,希望文章能够帮你解决Java 通过ReflectionFactory 创建序列化的实例(原创)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复