我是java初学者,我需要帮助。我有两个类,一个(歌曲)看到代码是第二个(日期)的子级。歌曲是可序列化的,而日期是不可序列化的(我打算保持日期类的这种方式)。我使用 Date 中名为 setDate 的方法,它需要三个参数,月、日和年,所有参数都是整数。我正在尝试使用自定义序列化(使用 readObject 和 writeObject 方法等)。
package assignment7;
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
*
* @author Owner
*/
public class Song extends Date implements Serializable{
private String title;
private String artist;
private String genre;
//private String dateOpened;
//private Date obj = new Date();
public Song(){
}
public void setTitle(String t) {
title = t;
}
public void setArtist(String a) {
artist = a;
}
public void setGenre(String g) {
genre = g;
}
public void setDateOpen(int m, int d, int y){
setDate(m, d, y);
}
public void setDayOpen(){
}
public void setDayOpen(){
Date
}
public void setDayOpen(){
}
public String getDateOpen(){
return getDate();
}
public String getTitle() {
return title;
}
public String getArtist() {
return artist;
}
public String getGenre() {
return genre;
}
private void writeObject( ObjectOutputStream out ) throws IOException, ClassNotFoundException, NotSerializableException {
out.defaultWriteObject();
out.writeObject(getTitle());
out.writeObject(getArtist());
out.writeObject(getGenre());
out.writeObject(getDateOpen());
}
private void readObject( ObjectInputStream in ) throws IOException, NotSerializableException, ClassNotFoundException {
in.defaultReadObject();
setTitle((String)in.readObject());
setArtist((String)in.readObject());
setGenre((String)in.readObject());
setDateOpen((int)in.readObject(), (int)in.readObject(), (int)in.readObject());
}
}
问题是 getDateOpen 方法返回一个字符串,而 setDateOpen 需要 3 个整数。有没有办法让 readObjects() 读取 3 个整数并仍然输出序列化字符串?(iv'e还包括我的老师说不要改变的日期课程)
眼眸繁星
相关分类