abstract double get(String name, double val) abstract char get(String name, char val) abstract float get(String name, float val) 描述 该java.io.ObjectInputStream.getField.get(String name, double val)方法获取指定的double字段从持久字段的值。 声明 以下是java.io.ObjectInputStream.getField.get()方法的声明。 public abstract double get(String name, double val) 参数 name - 字段的名称。 val - 如果name没有值,则使用默认值。 返回值 此方法返回指定的双字段的值。 异常 IOException - 如果从底层InputStream读取时存在I / O错误。 IllegalArgumentException - 如果name的类型不可序列化或字段类型不正确。 实例 以下示例显示了java.io.ObjectInputStream.getField.get()方法的用法。 package com.tutorialspoint; import java.io.*; public class ObjectInputStreamDemo implements Serializable { public static void main(String[] args) { try { // create a new file with an ObjectOutputStream FileOutputStream out = new FileOutputStream("test.txt"); ObjectOutputStream oout = new ObjectOutputStream(out); // write something in the file oout.writeObject(new Example()); oout.flush(); oout.close(); // create an ObjectInputStream for the file we created before ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt")); // read an object from the stream and cast it to Example Example a = (Example) ois.readObject(); // print var of a System.out.println("" + a.var); } catch (Exception ex) { ex.printStackTrace(); } } static public class Example implements Serializable { static double var = 1.875d; // assign a new serialPersistentFields private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("var", Double.TYPE) }; private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { // get the field and assign it at var ObjectInputStream.GetField fields = in.readFields(); // get var var = fields.get("var", 0d); } private void writeObject(ObjectOutputStream out) throws IOException { // write into the ObjectStreamField array the variable string ObjectOutputStream.PutField fields = out.putFields(); fields.put("var", var); out.writeFields(); } } } 让我们编译并运行上面的程序,这将产生以下结果 1.875 abstract char get(String name, char val) abstract float get(String name, float val)