Item 88. Read Object Method
readObject ๋ฉ์๋๋ ๋ฐฉ์ด์ ์ผ๋ก ์์ฑํ๋ผ
๋ ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์ ํํ์ด ๋ถํฉํ์ฌ ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ ์ฒ๋ผ ๋ณด์ด์ง๋ง, ๋ถ๋ณ์์ ๋ณด์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
public final class Period implements Serializable {
private final Date start;
private final Date end;
public Period(Date start, Date end) {
this.start = new Date(start.getTime());
this.end = new Date(end.getTime());
if (this.start.compareTo(this.end) > 0) {
throw new IllegalArgumentException(start + " after " + end);
}
}
public Date start() {
return new Date(start.getTime());
}
public Date end() {
return new Date(end.getTime());
}
// ...
}์ด์ ๋ readObject๊ฐ ์ค์ง์ ์ผ๋ก ๋ ๋ค๋ฅธ public ์์ฑใ
๋ฐ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์, ์์ฑ์์์ ํ๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ readObject์์๋ ์ํํด์ผ ํ๋ค.
๋ณดํต์ ์ ์์ ์ผ๋ก ์์ฑ๋ ์ธ์คํด์ค๋ก ๋ฐ์ดํธ ์คํธ๋ฆผ์ ์์ฑํด์ ๋ฌธ์ ๊ฐ ์์ง๋ง, ์์๋ก ์์ฑ๋ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ์ญ์ง๋ ฌํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํด์ผ ํ๋ค.
์์ฑ์์ readObject ๋ฉ์๋์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํํ๋ฉด, ๋ถ๋ณ์์ ์์ ํ ๋ณด์ฅํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง, ๋ค๋ฅธ ์ฌ์ด๋ ์ดํํธ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์๋ ์์๋ ์ ์ Period ์ธ์คํด์ค์์ ์์๋ ๋ฐ์ดํธ ์คํธ๋ฆผ ๋์ private Date ํ๋๋ก์ ์ฐธ์กฐ๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ๋ณ Period ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์๋ค.
Period ์ธ์คํด์ค๋ ๋ถ๋ณ์ฑ์ ์ ์งํ ์ฑ ์์ฑ๋์ง๋ง, ๊ณต๊ฒฉ์๊ฐ ์๋์ ์ผ๋ก ๋ด๋ถ์ ๊ฐ์ ์์ ํ ์ ์๊ฒ ๋๊ณ , ์ด๋ Period ์ธ์คํด์ค์ ๋ถ๋ณ์ฑ์ ๊นจ๋จ๋ฆฌ๊ฒ ๋๋ค.
์ด๋ ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ๊ฐ๋ ํ๋ ๋ชจ๋๋ฅผ ๋ฐฉ์ด์ ์ผ๋ก ๋ณต์ฌํ์ฌ ๋ฐฉ์งํ ์ ์๋ค.
Last updated
Was this helpful?