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

【Scala】「???」を使って未実装でもコンパイルを通す

Scalaでは、未実装だがとりあえずコンパイルを通したいという時に、???を使用することができます。

未実装を???で実装する

未実装部分を???で実装する

object Sample {
    def main(arts: Array[String]) : Unit = {
        emptyMethod(1)
    }

    // 未実装メソッド
    def emptyMethod(x: Int) = ???
}

上記のクラスはコンパイルは通すことができます。
しかし、呼び出し時は以下のようなエラーが発生します。

scala.NotImplementedError: an implementation is missing

???とは何か?

???は正式には、scala.Predef.??? です。
実装は以下のようにNotImplementedErrorを投げているだけになります。

???の実装

/** `???` can be used for marking methods that remain to be implemented.
*  @throws NotImplementedError when `???` is invoked.
*  @group utilities
*/
def ??? : Nothing = throw new NotImplementedError

Profile

管理人プロフィール

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

Recommend