类B继承类A,类B已实现Serializable接口,类A没有实现这个接口,通过RMI调用后类B的属性能获得,但类A的属性不能获得。经测试需要让类A也实现Serializable接口才可以获得类A的属性。
package com.tgb.lk;
import java.io.Serializable;
public abstract class A //implements Serializable
{
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
package com.tgb.lk;
import java.io.Serializable;
public class B extends A implements Serializable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "B [name=" + name + ", getId()=" + getId() + "]";
}
}
package com.tgb.lk;
public class TestC {
public static void main(String[] args) {
B b = new B();
b.setId("1");
b.setName("lk");
//本地测试正常,打印信息为:B [name=lk, getId()=1]
//通过RMI调用后不正常,打印信息为B [name=lk, getId()= ],
//通过RMI调用,当类A implements Serializable后才会正常。
System.out.println(b);
}
}