如何在java中创建一个不可序列化的字段?

时间:2012-12-03 16:31:29

标签: java

请,我需要有关序列化数据的帮助。

我有一个名为Foo的类,它定义了3个属性:

    public int age;
    public String name;
    public String description;

如何序列化此对象,但没有其描述字段?

提前致谢!

5 个答案:

答案 0 :(得分:61)

使用关键字transient

public transient String description;

答案 1 :(得分:8)

定义描述如下

public transient String description;

检查http://en.wikibooks.org/wiki/Java_Programming/Keywords/transient

答案 2 :(得分:3)

你只需要制作一个transient

示例:

public transient String description;

答案 3 :(得分:3)

将变量标记为transient,因为Transient变量未序列化。

 public transient int age;

答案 4 :(得分:1)

有时候,我们需要某些我们不想在网络流期间进行序列化的字段。

Ex .
    class userDetail{
     public  String userName;
     public transient  String password;
    }

在这里,我们不想序列化密码。 将该字段设置为瞬态以从序列化中删除。

                string mqtt = "mqtt+ssl://b-9d9f9270-1bef-4b4d-b180-719d4c7498e4-1.mq.ap-southeast-1.amazonaws.com:8883";

IConnectionFactory factory = new NMSConnectionFactory(new Uri(mqtt), clientId);
            IConnection connection = factory.CreateConnection(uname, password);
            ISession session = connection.CreateSession();
            IDestination destination = session.GetDestination("topic://" + topic);
            //  IMessageConsumer consumer = session.CreateConsumer(destination);
            IMessageProducer producer = session.CreateProducer(destination);


            try
            {
                connection.Start();
                producer.DeliveryMode = MsgDeliveryMode.Persistent;
                ITextMessage request = session.CreateTextMessage(message);
                request.NMSCorrelationID = "observation";
                request.Properties["NMSXGroupID"] = "observation";
                request.Properties["myHeader"] = "observation";
                producer.Send(request);
                Console.WriteLine(message);

            }

Apache.NMS.NMSConnectionException: No IConnectionFactory implementation found for connection URI: mqtt+ssl://b-9d9f9270-1bef-4b4d-b180-719d4c7498e4-1.mq.ap-southeast-1.amazonaws.com:8883/
at Apache.NMS.NMSConnectionFactory.CreateConnectionFactory (System.Uri uriProvider, System.Object[] constructorParams) [0x00043] in <53effb06f12a48e4933cd883c0e27b12>:0