registerValidation()
方法registerValidation()方法在java.io包中可用。
registerValidation()方法用于在返回图形之前注册要验证的对象(ob)。
registerValidation()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
registerValidation()方法在注册要验证的对象时可能会引发异常。
NotActiveException:如果不允许启用给定参数,则可能引发此异常。
InvalidObjectException:当给定参数无效时,可能引发此异常。
语法:
public void registerValidation(ObjectInputValiadation ob, int priority);
参数:
ObjectInputValiadation ob –表示要获取验证回调的对象。
int priority –表示基于回调顺序的优先级。
返回值:
该方法的返回类型为void,不返回任何内容。
示例
//Java程序演示示例 //void registerValidation(ObjectInputValiadation ob, //int优先级)ObjectInputStream的方法 import java.io.*; public class RegisterValidation { public static void main(String[] args) { try { //实例化ObjectOutputStream,ObjectInputStream- //FileInputStream和FileOutputStream- FileOutputStream file_out_stm = new FileOutputStream("D:\\includehelp.txt"); Drain obj_out_stm = new Drain(file_out_stm); FileInputStream file_in_stm = new FileInputStream("D:\\includehelp.txt"); ObjectInputStream obj_in_stm = new ObjectInputStream(file_in_stm); obj_out_stm.writeObject(new ReadObject()); //通过使用readObject()方法是读取 ReadObject a = (ReadObject) obj_in_stm.readObject(); //测试验证 if (ReadObject.str.equals("Java Programmer")) { System.out.println("Validations Successful!!!"); } else { System.out.println("Invalid Validations!!! "); } } catch (Exception ex) { ex.printStackTrace(); } } static class ReadObject implements Serializable, ObjectInputValidation { static String str = "Java World!!!"; private String readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { //通过使用readFields()方法是获取字段 ObjectInputStream.GetField get_f = ois.readFields(); ois.registerValidation(this, 0); //返回str- return (String) get_f.get("str", null); } @Override public void validateObject() throws InvalidObjectException { throw new UnsupportedOperationException("Unsupported Validations!!!"); } } }
输出结果
Invalid Validations!!!