用final修饰的方法:不能被重写 注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变 (2)final不能修饰特质,但是可以修饰抽象类 1 2 3 4 5 6 7 traitAnimal { defeat(name:String) finaldefsleep(name:String):Unit={ println(s"$name ->睡得天花乱坠") } } 如图代码,Pig继承...
case class有一个好的特性就是它会在它的伴生对象中自动生成unapply方法,用于模式匹配. 如果没有unapply方法, 类将无法进行模式匹配, 关于unapply方法的写法可见如下代码示例: sealed trait Pet object Pet { final class Dog(val name: String) extends Pet {} final class Cat(val name: String) extends Pet ...
case object CaseObject相应的反编译后的内容: D:\ScalaWorkspace\ScalaChapter15\bin\cn\scala\xtwy>javap -private CaseObject.cla ss Compiled from "CaseObject.scala" public final class cn.scala.xtwy.CaseObject { public static java.lang.String toString(); public static int hashCode(); public stati...
case class类的参数都是可以直接访问的val(不能被修改),但是实际上编译成的class字节码会对book.name转成book.name()方法调用。如下图所示,name声明的时候是加了final关键字,并且生成了对应的name()方法。printBookName()方法中使用到的book.name实际上是调用的name()方法。模式匹配 模式匹配是检查某个值(v...
final case class Some[+A](x: A) extends Option[A]= false def get = x } @SerialVersionUID(5066590221178148012L) // value computed by serialver for 2.11.2, annotation added in 2.11.4 case object extends Option[Nothing]= true def get = throw new NoSuchElementException("None.get") ...
Symbol常量:'x是表达式scala.Symbol("x")的缩写,Symbol是case class,定义如下。 字符常量:'a','\n','\t','\u0041' 字符串常量:"Hello,\nWorld!","This string contains a \" character." packagescalafinalcaseclassSymbolprivate(name:String){overridedeftoString:String="'"+name} ...
case class类的参数都是可以直接访问的val(不能被修改),但是实际上编译成的class字节码会对book.name转成book.name()方法调用。如下图所示,name声明的时候是加了final关键字,并且生成了对应的name()方法。 printBookName()方法中使用到的book.name实际上是调用的name()方法。
package scalafinal case class Symbol private (name: String) { override def toString: String = "'" + name} 字符字面量 在Scala 字符变量使用单引号 ' 来定义,如下: 'a' '\u0041''\n''\t' 其中\ 表示转义字符,其后可以跟 u0041 数字或者 \r\n 等固定的转义字符。 ...
首先来看Dollar$.class packagecom.ruozedata.bigdata.scala04.casepkg;importscala.Option;importscala.Serializable;importscala.Some;importscala.runtime.AbstractFunction1;publicfinalclassDollar$extendsAbstractFunction1<String,Dollar>implementsSerializable{publicstaticfinalDollar$ MODULE$;publicfinalStringtoString(){re...
finalcaseclassSome[+A](@deprecatedName('x,"2.12.0")value:A)extendsOption[A]{def isEmpty=falsedef get=value @deprecated("Use .value instead.","2.12.0")def x:A=value}/** This case object represents non-existent values. * * @author Martin Odersky ...