Scala中的單例以及鏈式表示式
object被當做單例,如果有伴生類的話,那它就是該類的伴生物件,可以作為類的公共靜態方法和成員區
實際上,每一個具體物件,都有單例型別
實際上,每一個具體物件,都有單例型別
點選(此處)摺疊或開啟
-
object Scala
-
class Java1
-
class JVM { def method1: this.type = this }
-
class JVM_Language extends JVM { def method2 : this.type = this }
-
object Singleton_Type {
-
-
def main(args: Array[String]){
-
println(Scala.getClass) //class com.dt.scala.bestpractice.Scala$
-
println(typeOf[Scala.type]) //com.dt.scala.bestpractice.Scala.type,最原始的單例型別
-
-
val java = new Java1
-
val java2 = new Java1
-
println(typeOf[java.type]) //java.type,例項的type
- println(typeOf[java2.type]) //java2.type
-
-
//java是java.type單例型別的唯一例項;java2是java2.type單例型別的唯一例項
- //作為一個類的例項,它是單例唯一的,雖然背後的class一樣,但是type不同。
-
//所有物件都有一個唯一的.type的單例型別
-
val content:java.type = java
-
// val content:java.type = java2
-
-
val jvm = new JVM_Language
-
println(jvm.method1) //com.dt.scala.bestpractice.JVM_Language@627a4489,返回具體子類例項
-
jvm.method1.method2 //this.type動態返回具體例項,該例項具有method2方法
-
}
-
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-2059614/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 聊聊JavaScript和Scala的表示式 ExpressionJavaScriptExpress
- ABAP mesh表示式, JavaScript和Scala的 expressionJavaScriptExpress
- 關於利用STL棧求解四則中綴表示式以及中綴表示式轉逆波蘭表示式和逆波蘭表示式的求解
- scala:分別使用懶漢式和餓漢式實現單例模式單例模式
- 【資料結構與演算法】中綴表示式轉字尾表示式以及字尾表示式的計算資料結構演算法
- JavaScript正規表示式備忘單附例項JavaScript
- 正規表示式以及group的用法
- SQLite中的表示式SQLite
- 中綴表示式轉字尾表示式
- 正規表示式理解及簡單應用舉例
- 正規表示式例項蒐集,通過例項來學習正規表示式。
- java 正規表示式 舉例Java
- PHP preg match正規表示式函式的操作例項PHP函式
- 中綴表示式
- .NET 中的表示式樹
- Java 中的 Lambda 表示式Java
- MShadow中的表示式模板
- 中綴表示式轉為逆波蘭表示式
- Java 正規表示式例項操作Java
- 好程式設計師大資料教程分享Scala系列之檔案以及正規表示式程式設計師大資料
- Python中eval函式的表示式如何使用Python函式
- 簡單介紹正規表示式拆分url例項程式碼
- 關於scala中的主建構函式函式
- await會阻塞其所在表示式中後續表示式的執行AI
- java中的正規表示式Java
- 理解DAX表示式中的VAR
- C#中的表示式樹C#
- Python中lambda表示式的用法Python
- Python中的邏輯表示式Python
- Java中Lambda表示式的使用Java
- JS中的正規表示式JS
- Scala 的方法與函式函式
- scala(三)函式函式
- python正規表示式 小例幾則Python
- 通過js正規表示式例項學習正規表示式基本語法JS
- 中綴表示式轉化為字尾表示式並求值
- 說說 Spring 表示式語言(SpEL)中的各種表示式型別Spring型別
- Oracle中的正規表示式(及函式)詳解Oracle函式
- JS 中的函式表示式和函式宣告你混淆了嗎?JS函式