[scala] case object와 object의 차이,
case class는 일반적으로 패턴 매치, 데이터의 모델링, 간단한 클래스 형태로 사용하기 쓰인다.
case object는 serializable을 상속함으로서 파일 저장/통신에 유용하다.
scala> object A
defined object A
scala> import java.io._
import java.io._
scala> val bos = new ByteArrayOutputStream
bos: java.io.ByteArrayOutputStream =
scala> val oos = new ObjectOutputStream(bos)
oos: java.io.ObjectOutputStream = java.io.ObjectOutputStream@2f85d223
scala> oos.writeObject(A)
java.io.NotSerializableException: A$
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
... 50 elided
scala> import java.io._
import java.io._
scala> val bos = new ByteArrayOutputStream
bos: java.io.ByteArrayOutputStream =
scala> val oos = new ObjectOutputStream(bos)
oos: java.io.ObjectOutputStream = java.io.ObjectOutputStream@2f85d223