大家好,又见面了,我是你们的朋友全栈君。
软件简介
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);
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133738.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...