protostuff java_protostuff

protostuff java_protostuff软件简介protostuff是一个支持各种格式的一个序列化Java类库,包括JSON、XML、YAML等格式。示例代码:publicclassUserSchemaimplementsSchema{publicbooleanisInitialized(Useruser){returnuser.getEmail()!=null;}publicvoidmergeFrom(In…

大家好,又见面了,我是你们的朋友全栈君。

软件简介

protostuff 是一个支持各种格式的一个序列化Java类库,包括 JSON、XML、YAML等格式。

示例代码:

public class UserSchema implements Schema

{

public boolean isInitialized(User user)

{

return user.getEmail() != null;

}

public void mergeFrom(Input input, User user) throws IOException

{

while(true)

{

int number = input.readFieldNumber(this);

switch(number)

{

case 0:

return;

case 1:

user.setEmail(input.readString());

break;

case 2:

user.setFirstName(input.readString());

break;

case 3:

user.setLastName(input.readString());

break;

case 4:

if(message.friends == null)

message.friends = new ArrayList();

message.friends.add(input.mergeObject(null, this));

break;

default:

input.handleUnknownField(number, this);

}

}

}

public void writeTo(Output output, User user) throws IOException

{

if(user.getEmail() == null)

throw new UninitializedMessageException(user, this);

output.writeString(1, user.getEmail(), false);

if(user.getFirstName() != null)

output.writeString(2, user.getFirstName(), false);

if(user.getLastName() != null)

output.writeString(3, user.getLastName(), false);

if(message.friends != null)

{

for(User friend : message.friends)

{

if(friend != null)

output.writeObject(4, friend, this, true);

}

}

}

public User newMessage()

{

return new User();

}

public Class typeClass()

{

return User.class;

}

public String messageName()

{

return User.class.getSimpleName();

}

public String messageFullName()

{

return User.class.getName();

}

// the mapping between the field names to the field numbers.

public String getFieldName(int number)

{

switch(number)

{

case 1:

return “email”;

case 2:

return “firstName”;

case 3:

return “lastName”;

case 4:

return “friends”;

default:

return null;

}

}

public int getFieldNumber(String name)

{

Integer number = fieldMap.get(name);

return number == null ? 0 : number.intValue();

}

private static final HashMap fieldMap = new HashMap();

static

{

fieldMap.put(“email”, 1);

fieldMap.put(“firstName”, 2);

fieldMap.put(“lastName”, 3);

fieldMap.put(“friends”, 4);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133738.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号