Tag: 瞬态

从java transient或@Transient注释隐藏JSON序列化属性的最佳方法?

在Spring中,ExtJs应用程序我使用JSON序列化java对象。 当我想从JSON中排除属性时,我使用@Transient注释。 我看到java transient关键字也适用于此。 我想知道哪些在性能视角和安全性方面最好,更有效。

可以使用reflection获得类中的瞬态场

可以使用reflection获得类中的transient场吗? (使用getDeclaredField(..) )

可以在hbm.xml中映射的属性是暂时的吗?

假设我有一个像这样的User实体: class User { private String login; transient private String hashedPassword; } 我不想将hashedPassword转移到客户端,因此我将其设置为瞬态。 该类由Hibernate映射,两个字段都映射在hbm.xml中。 这种实施安全吗? Hibernate会在数据库中正确存储hashedPassword ,将其从数据库加载到对象中,将其保存在复制的二级缓存和本地会话缓存中吗? 顺便说一句,Hibernate或二级缓存是否以任何方式对transient进行处理或完全忽略它? 编辑 :我已经有两个答案似乎没有包括等式的一个特定方面。 我根本没有使用注释,只是在hbm.xml使用XML映射。 这个Java瞬态字段在hbm.xml OR映射。

用作锁的瞬态最终字段为空

以下代码抛出NullPointerException 。 import java.io.*; public class NullFinalTest { public static void main(String[] args) throws IOException, ClassNotFoundException { Foo foo = new Foo(); foo.useLock(); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); new ObjectOutputStream(buffer).writeObject(foo); foo = (Foo) new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())).readObject(); foo.useLock(); } public static class Foo implements Serializable { private final String lockUsed = “lock used”; private transient final […]

瞬态变量有什么用?

可能重复: 为什么Java有瞬态变量? transient关键字将用于防止特定变量的序列化。 但为什么我们不应该序列化数据呢? 有内在安全吗?

如何将字段标记为瞬态可以序列化对象

public class Foo implements java.io.Serializable { private int v1; private static double v2; private Loan v3 = new Loan(); } 选项: 答:Foo的一个实例可以被序列化,因为Foo实现了Serializable。 B.无法序列化Foo的实例,因为Foo包含不可序列化的实例变量v3。 C.如果将v3标记为瞬态,则Foo的实例是可序列化的。 D. b和c 答案:D Explanation:即使对象实现java.io.Serializable ,也可能无法序列化对象,因为它可能包含不可序列化的实例变量。 现在我的问题是: 据我所知,transient 用于关闭序列化。 那么在这种情况下如何瞬态,帮助我们序列化foo?