当前位置: 首页 > 教程 > Java IO流 >

Java ObjectStreamFiled

精华
小牛编辑
104浏览
2023-03-14

1 什么是Java ObjectStreamFiled

ObjectStreamFiled 类是可序列化字段来自Serializable类的描述。 ObjectStreamFields数组用来声明一个类的序列化字段。

2 Java ObjectStreamFiled的构造方法

构造方法 描述
ObjectStreamField(String name, Class<?> type) 创建具有指定类型的Serializable字段。
ObjectStreamField(String name, Class<?> type, boolean unshared) 创建一个ObjectStreamField,表示具有给定名称和类型的可序列化字段。

3 Java ObjectStreamFiled的方法

修饰符 方法 描述
int compareTo(Object obj) 将此字段与另一个ObjectStreamField进行比较。
String getName() 获取该字段的名称。
int getOffset() 实例数据中字段的偏移量。
Class<?> getType() 获取字段的类型。
char getTypeCode() 返回字段类型的字符编码。
String getTypeString() 返回JVM类型签名。
boolean isPrimitive() 如果此字段具有原始类型,则返回true。
boolean isUnshared() 返回布尔值,该布尔值指示此ObjectStreamField实例表示的可序列化字段是否未共享。
protected void setOffset(int offset) 实例数据中的偏移量。
String toString() 它返回描述此字段的字符串。

4 Java ObjectStreamFiled的例子

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java ObjectStreamField的例子
 */
import java.io.ObjectStreamClass;
import java.util.Calendar;

public class Demo {

    public static void main(String[] args) {

        // create a new object stream class for Integers
        ObjectStreamClass osc = ObjectStreamClass.lookup(String.class);

        // get the value field from ObjectStreamClass for integers
        System.out.println("" + osc.getField("value"));

        // create a new object stream class for Calendar
        ObjectStreamClass osc2 = ObjectStreamClass.lookup(Calendar.class);

        // get the Class instance for osc2
        System.out.println("" + osc2.getField("isTimeSet"));

    }
}

输出结果为:

null
Z isTimeSet