GWT AutoBean - 不序列化 ArrayList<String>,其他 pojos 好吗?
GWT AutoBean - not serializing ArrayList<String>, other pojos ok?
我无法使用 AutoBean 机制获取要序列化的 ArrayList。我正在使用 GWT 2.7。这是我的设置:
public interface IUser {
String getName();
void setName(String name);
ArrayList<String> getFriends();
void setFriends(ArrayList<String> friends);
}
public class User implements IUser {
private String name;
private ArrayList<String> friends;
... getters and setters for all members attributes ...
}
然后我的豆厂:
public interface AutoBeanFactoryImpl extends AutoBeanFactory {
AutoBean<IUser> user(IUser inst);
}
最后是我的用法:
ArrayList<String> friends = new ArrayList<String>();
friends.add("Mary");
User user = new User();
user.setName("Fritz");
user.setFriends(friends);
AutoBeanFactoryImpl factory = GWT.create(AutoBeanFactoryImpl.class);
AutoBean<IUser> bean = factory.user(user);
String json = AutoBeanCodex.encode(bean).getPayload();
输出json没有朋友数组。它的名字还可以。为什么字符串数组没有序列化?我需要一些特别的东西吗?
谢谢
问题是您指定了 ArrayList
而不是简单的 List
- 为了很好地生成代码来填补 Java 和 JSON 之间的空白, autobeans 只想使用接口。除了 getters 和 setters 之外,AutoBeans 还特别支持 List
、Set
(这只是一个 List
,在 JSON), 和 Map
。如果您指定特定的实现,AutoBean 工具无法始终处理它。
随意传入一个 ArrayList
实例,但声明你的 getter 和 setter 为 List
.
类型
顺便说一句,这些集合可以是 AutoBeans 可以处理的任何类型 - 包括数字、布尔值、字符串、日期和任何其他也符合 AutoBeans 可以处理的类似 bean 的接口。
我无法使用 AutoBean 机制获取要序列化的 ArrayList。我正在使用 GWT 2.7。这是我的设置:
public interface IUser {
String getName();
void setName(String name);
ArrayList<String> getFriends();
void setFriends(ArrayList<String> friends);
}
public class User implements IUser {
private String name;
private ArrayList<String> friends;
... getters and setters for all members attributes ...
}
然后我的豆厂:
public interface AutoBeanFactoryImpl extends AutoBeanFactory {
AutoBean<IUser> user(IUser inst);
}
最后是我的用法:
ArrayList<String> friends = new ArrayList<String>();
friends.add("Mary");
User user = new User();
user.setName("Fritz");
user.setFriends(friends);
AutoBeanFactoryImpl factory = GWT.create(AutoBeanFactoryImpl.class);
AutoBean<IUser> bean = factory.user(user);
String json = AutoBeanCodex.encode(bean).getPayload();
输出json没有朋友数组。它的名字还可以。为什么字符串数组没有序列化?我需要一些特别的东西吗?
谢谢
问题是您指定了 ArrayList
而不是简单的 List
- 为了很好地生成代码来填补 Java 和 JSON 之间的空白, autobeans 只想使用接口。除了 getters 和 setters 之外,AutoBeans 还特别支持 List
、Set
(这只是一个 List
,在 JSON), 和 Map
。如果您指定特定的实现,AutoBean 工具无法始终处理它。
随意传入一个 ArrayList
实例,但声明你的 getter 和 setter 为 List
.
顺便说一句,这些集合可以是 AutoBeans 可以处理的任何类型 - 包括数字、布尔值、字符串、日期和任何其他也符合 AutoBeans 可以处理的类似 bean 的接口。