业务类实现java.io.Serializable接口才可被反序列化,而且必须所有属性是可序列化的,除了transient修饰的属性除外。
Java反射
Java中定义的一个类本身也是一个类对象,它们是java.lang.Class类的实例。类对象的特征包括
- 表示正在运行的 Java 应用程序中的类和接口
- 没有公共构造方法,由 Java 虚拟机自动构造
- 提供类本身的信息,比如有几种构造方法, 有多少属性,有哪些普通方法
所以先通过对象找到某个类对象,再由类对象确认类的方法和属性。
package reflection;public class Exec {public static void main(String[] args) throws Exception {//java.lang.Runtime.getRuntime().exec("calc.exe");Class runtimeClass=Class.forName("java.lang.Runtime");Object runtime=runtimeClass.getMethod("getRuntime").invoke(null);// getRuntime是静态方法,invoke时不需要传入对象runtimeClass.getMethod("exec", String.class).invoke(runtime,"calc.exe");}
}