Java ObjectStreamClass

1 什么是Java ObjectStreamClass

ObjectStream 类充当类的序列化描述符。这个类中包含的名称和类的serialVersionUID。

2 Java ObjectStreamClass的属性

修饰符 属性名 描述
static ObjectStreamField[] NO_FIELDS serialPersistentFields值,表示没有可序列化的字段

3 Java ObjectStreamClass的方法

修饰符 方法名 描述
Class<?> forClass() 返回该版本映射到的本地VM中的类。
ObjectStreamField getField(String name) 通过名称获取此类的字段。
ObjectStreamField[] getFields() 返回此序列化类的字段的数组。
String getName() 返回此描述符描述的类的名称。
long getSerialVersionUID() 返回此类的serialVersionUID。
static ObjectStreamClass lookup(Class<?> cl) 找到可以序列化的类的描述符。
static ObjectStreamClass lookupAny(Class<?> cl) 返回任何类的描述符,而不管它是否实现Serializable接口。
String toString() 返回一个描述此ObjectStreamClass的字符串。

4 Java ObjectStream的例子

Student.java:

package com.yiidian;

import java.io.Serializable;

/**
 *一点教程网: http://www.yiidian.com
 */
public class Student implements Serializable{

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Demo.java:

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 *  Java ObjectStreamClass的例子
 */
import java.io.ObjectStreamClass;
import java.util.Calendar;

public class Demo {
    public static void main(String[] args) {

        // create a new object stream class
        ObjectStreamClass osc = ObjectStreamClass.lookup(Student.class);

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

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

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

    }
}

输出结果为:

Ljava/lang/String; name
null

 

热门文章

优秀文章