Kotlin

What's New in Kotlin 1.3をさらっと眺めてみた #kotlin

What's New in Kotlin 1.3 - Kotlin Programming Language ↑をサラッと読んだ contract構文ができた? スマートキャストが便利になったみたいだけどよく分からん。。 whenの条件で変数代入ができるようになった @JvmStatic と @JvmField がinterfaceのcompan…

メソッドを持ったKotlinのEnumをGroovy(Spock)から参照する #groovy #spock #kotlin

概要 KotlinはJava同様Enumに振る舞い(メソッド)を持たせることができる Groovyから振る舞いを持ったEnum要素を直接参照するとエラーになる Direct field access operator(@)経由で参照すればOK EnumのValueOfでも参照できる 振る舞いを持たないEnumはうま…

KotlinでMyBatisのSqlProviderを使う #kotlin #mybatis

概要 MyBatisのSQLはXMLに書いたりアノテーションに文字列で渡す方法があるが、SqlProviderを使う方法を試してみた。 これが一番好きかもしれない。 ちなみにSpringBoot(mybatis-spring-boot-starter)を利用している。 SqlProviderの使い方 クエリの種類に…

Groovy(Spock)からKotlinのCompanion Objectを呼び出す #groovy #spock #kotlin

概要 最近はJavaではなくKotlinを書いていますが、Spockが好きすぎるのでテストはGroovyで書いたりします。 KotlinのCompanion Objectをテストするときに、Groovy側から呼び出す方法です。 Companion Object Kotlinではクラスに静的なメソッドを定義する時は…

Interfaceでプロパティを定義する #Kotlin

Getterの実装を強制したいような時 valで定義して、オーバライドしてやればよい interface Foo { val hoge: String } class Bar(override val hoge: String) : Foo

kotlin-testで例外のテスト #Kotlin

概要 KotlinのUnitTestはSpekで書いており、Assertion Frameworkはkotlin-testを使ってる。 kotlin-testで例外発生のテストをAssertする。 例外の発生をテストする assertFailsを使えばOK assertFails { someMethod(invalidArg) } 発生した例外の型をテスト…