个性化阅读
专注于IT技术分析

Java ObjectStreamField类

Serializable类中对Serializable字段的描述。 ObjectStreamFields数组用于声明类的Serializable字段。

java.io.ObjectStreamClass.getField(String name)方法按名称获取此类的字段。

建设者

建设者 描述
ObjectStreamField(字符串名称, Class <?>类型) 它创建具有指定类型的Serializable字段。
ObjectStreamField(字符串名称, Class <?>类型, 布尔值不共享) 它创建一个ObjectStreamField, 表示具有给定名称和类型的可序列化字段。

方法

修饰符和类型 方法 描述
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() 它返回描述此字段的字符串。

公共字符getTypeCode()

返回字段类型的字符编码。编码如下:

B byte
C char
D double
F float
I int
J long
L 类或接口
S short
Z boolean
[ array

返回值:

可序列化字段的类型代码


import java.io.ObjectStreamClass;
import java.util.Calendar;

public class ObjectStreamClassExample {
	 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"));

	   }
}

输出:

I value
Z isTimeSet
赞(0)
未经允许不得转载:srcmini » Java ObjectStreamField类

评论 抢沙发

评论前必须登录!