2

在 Spring,ExtJs 应用程序中,我使用 java 对象的 JSON 序列化。当我想从 JSON 中排除一个属性时,我使用@Transient注释。

我看到 javatransient关键字也适用于此。我想知道其中哪些在性能和安全性方面是最好的和更有效的。

4

2 回答 2

2

最好使用@Transient注释,这将使您的意图更加明显。

看看这个:

private transient Somefield myField;

还有这个:

@Transient
private Somefield myField;

哪个更明显?

transientas 关键字“仅”用于在 Java 序列化期间忽略某些字段。你可以说这个注解是更具体的领域,你的 JSON 处理器会更好地使用它;安全和性能明智,因为它会知道您要做什么。

更不用说,如果一个字段被标记transient,但没有注释,那么当你的对象通过网络时,你的实现将期望一个具有null值的字段,但实际上它什么也得不到这可能会导致一些问题。

于 2013-06-29T07:04:28.617 回答
1

我更喜欢使用基于注释的映射。因为这可能取决于您的 JSON 解析器 API。annotation因此, java Vs之间可能存在差异@Transient

于 2013-06-29T06:50:17.077 回答