transient
我应该像在 Java EE 中那样声明注入变量吗?
我收到了 FindBugs 警告:
com.playaround.HelloServlet 类定义了 non-transient 不可序列化实例字段 accelerationUnit
这个 Serializable 类定义了一个非原始实例字段,它既不是瞬态的,也不是 Serializable 或 java.lang.Object,并且似乎没有实现 Externalizable 接口或readObject() 和 writeObject() 方法。
如果此字段中存储了不可序列化的对象,则此类的对象将无法正确反序列化。
游戏中的代码是:
/**
* Sample of a web service reference.
*/
@WebServiceRef
private AccelerationUnit accelerationUnit;
同样的问题适用于@Resource
,@Inject
等@PersistenceUnit
。