Java ObjectStreamField
来自Serializable类的Serializable字段的描述。 ObjectStreamFields的array用于声明类的Serializable字段。
java.io.ObjectStreamClass.getField(String name)方法按名称获取此类的字段。
构造函数
构造函数 |
说明 |
ObjectStreamField(String name, Class
type) |
它将创建具有指定类型的序列化字段。 |
ObjectStreamField(String name, Class
type, boolean unshared) |
它将创建一个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 |
class or interface |
S |
short |
Z |
boolean |
[ |
array |
返回:
可序列化字段的类型代码
示例:
import java.io.ObjectStreamClass;
import java.util.Calendar;
public class ObjectStreamClassExample {
public static void main(String[] args) {
class osc = ObjectStreamClass.lookup(String.class);
class for integers System.out.println("" + osc.getField("value"));
class for Calendar ObjectStreamclass osc2 = ObjectStreamClass.lookup(Calendar.class);
class instance for osc2 System.out.println("" + osc2.getField("isTimeSet"));
}
}
输出: