Scala中样例类的设计主要是为了代替Java语言中的JavaBean和RPC通信使用,普通类和样例类之间的区别总结如下:
首先创建一个样例类:
object CaseClassDemo {
def main(args: Array[String]): Unit = {
val user:User = User("zhangsan",26)
}
}
case class User(name:String,age:Int)
二者之间的区别可以从编译后产生的.class文件中得知,编译后的文件如下:
反编译后:
User.class:
import scala.Function1;
import scala.Option;
import scala.Product;
import scala.Product.class;
import scala.Serializable;
import scala.Tuple2;
import scala.collection.Iterator;
import scala.reflect.ScalaSignature;
import scala.runtime.BoxesRunTime;
import scala.runtime.ScalaRunTime.;
import scala.runtime.Statics;
@ScalaSignature(bytes="")
public class User
implements Product, Serializable
{
private final String name;
private final int age;
public static Option<Tuple2<String, Object>> unapply(User paramUser)
{
return User..MODULE$.unapply(paramUser);
}
public static User apply(String paramString