implements Serializable有什么作用?

本文解释了在Java中实现Serializable接口的重要性,特别是在远程方法调用(RMI)和JavaBeans中使用对象序列化来传输对象的状态信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

implements Serializable有什么作用?

2007-03-17 15:39 串客119  |  分类:其他编程语言  |  浏览30100次
例如:
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.ValidatorForm;

/**
 * Form bean for the user registration page.
 *
*/
public final class RegistrationForm extends ValidatorForm implements Serializable {
    private String action = null;
       
    private String sFirstName = null;
    private String sLastName = null;
    private String sAddr = null;
    private CityStateZip csz = new CityStateZip();
    private String sPhone = null;
    private String sEmail = null;

public String getAction() {
 return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    public String getFirstName() {
       return sFirstName; 
    }
    
    public void setFirstName(String sFirstName) {
        this.sFirstName = sFirstName;
    }
    
    public String getLastName() {
       return sLastName; 
    }
    
    public void setLastName(String sLastName) {
        this.sLastName = sLastName;
    }

    public String getAddr() {
       return sAddr; 
    }
    
    public void setAddr(String sAddr) {
        this.sAddr = sAddr;
    }

    public CityStateZip getCityStateZip() {
       return csz; 
    }
    
    public void setCityStateZip(CityStateZip csz) {
        this.csz = csz;
    }

    public String getPhone() {
       return sPhone; 
    }
    
    public void setPhone(String sPhone) {
        this.sPhone = sPhone;
    }

    public String getEmail() {
       return sEmail; 
    }
    
    public void setEmail(String sEmail) {
        this.sEmail = sEmail;
    }
        
    /**
     * Reset all properties to their default values.
     *
     * @param mapping The mapping used to select this instance
     * @param request The servlet request we are processing
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
       action = null;
       sFirstName = null;
       sLastName = null;
       sAddr = null;
       csz = new CityStateZip();
       sPhone = null;
       sEmail = null;
    }

}
2007-03-17 15:42 提问者采纳
没有implements Serializable,你就不能通过rmi(包括ejb)提供远程调用。
serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。  
serialization不但可以在本机做,而且可以经由网络操作(就是猫小说的RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序等。比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以在这台Unix机器上正确地重构这个对象。 
Object serialization主要用来支持2种主要的特性: 
1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时,就需要用到serializaiton机制来发送参数和接收返回直。 
2。Java的JavaBeans.   Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。
总之如果在网络的环境下做类传输,应该还是implements Serializable。
评论(9)  |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值