1700439430
1700439431
(4)变更传输契约
1700439432
1700439433
例如改用XML传输,或者重建一个Web Service服务。可以做,但成本太高。
1700439434
1700439435
可能有读者会说了,你都在说别人的方案不好,你提供个优秀的方案看看!好的,这就展示一个优秀的方案。其中,实现了Serializable接口的类可以实现两个私有方法:writeObject和readObject,以影响和控制序列化和反序列化的过程。我们把Person类稍做修改,看看如何控制序列化和反序列化,代码如下:
1700439436
1700439437
public class Person implements Serializable{
1700439438
1700439439
private static final long serialVersionUID=60407L;
1700439440
1700439441
//姓名
1700439442
1700439443
private String name;
1700439444
1700439445
//薪水
1700439446
1700439447
private transient Salary salary;
1700439448
1700439449
public Person(String_name, Salary_salary){
1700439450
1700439451
name=_name;
1700439452
1700439453
salary=_salary;
1700439454
1700439455
}
1700439456
1700439457
//序列化委托方法
1700439458
1700439459
private void writeObject(java.io.ObjectOutputStream out)throws IOException{
1700439460
1700439461
out.defaultWriteObject();
1700439462
1700439463
out.writeInt(salary.getBasePay());
1700439464
1700439465
}
1700439466
1700439467
//反序列化时委托方法
1700439468
1700439469
private void readObject(java.io.ObjectInputStream in)throws IOException, Class-
1700439470
1700439471
NotFoundException{
1700439472
1700439473
in.defaultReadObject();
1700439474
1700439475
salary=new Salary(in.readInt(),0);
1700439476
1700439477
}
1700439478
1700439479
}
[
上一页 ]
[ :1.70043943e+09 ]
[
下一页 ]