JID 是一個用來反序列化
今天我試驗了下使用 JID 進行 Java 對象的序列化過程
首先 JID 依賴於 JActor 和 SLF
大家先不需要關心代碼中牽扯的一些類是作何用途的
我們這裡假設要對一個 User 對象進行序列化
/**
* 序列化對象
* @author Winter Lau
*/
public static class User extends AppJid {
private StringJid getNameJid() throws Exception {
return (StringJid) _iGet(
}
private IntegerJid getAgeJid() throws Exception {
return (IntegerJid) _iGet(
}
public String getName() throws Exception {
return getNameJid()
}
public void setName(String name) throws Exception {
getNameJid()
}
public int getAge() throws Exception {
return getAgeJid()
}
public void setAge(int age) throws Exception {
getAgeJid()
}
}
然後每個要做序列化的對象都需要有個對應的工廠類
public static class UserFactory extends AppJidFactory {
final public static UserFactory fac = new UserFactory();
public UserFactory() {
super(
}
protected User instantiateActor() throws Exception {
return new User();
}
}
其中特別注意 UserFactory 構造函數裡的
接下來就是測試程序
public static void main(String[] args) throws Exception {
JAFactory factory = new JAFactory(){{(new JidFactories())
factory
RootJid rootJid = (RootJid) factory
long ct = System
rootJid
User user = (User)rootJid
user
user
int slen = rootJid
byte[] sdatas = new byte[slen];
rootJid
rootJid
User user
System
}
程序講解
這便是一個完整的使用 JID 進行自定義對象的序列化和反序列化的過程
這裡需要很注意的是 UserFactory 中構造函數的參數順序
據說 JID 的序列化的性能是極高的
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25813.html