BBH
-Biz Branding Hub-
投稿日 : 
2020/10/19
更新日 : 
2020/10/19

【Scala】applyを使ってオブジェクトを関数のように呼び出す

Scalaにはapplyという特別なキーワードがあります。
これを使用すると、クラス名だけでメソッドを呼び出すことができます。

applyメソッドの実装

def main(arts: Array[String]) : Unit = {
    ApplySample() // =>ApplySample
}

// applyメソッドの定義
object ApplySample {
    def apply() = println("ApplySample")
}

ちなみに以下のようにapplyに()をつけないと上手く動かないので注意が必要。

メソッド末尾の()が無いと上手く動かない

def main(arts: Array[String]) : Unit = {
    ApplySample // =>何も表示されない
}

// applyメソッドの定義
object ApplySample {
    // メソッド末尾の()なし
    def apply = println("ApplySample")
}

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend