【Kotlin】拡張プロパティで全クラスから簡単にロガーを利用する

プログラミング
この記事は約2分で読めます。

ヘタレなのりお氏ですが、同時に極度のめんどくさがりでもあります。。

Javaで書いていたコード

Javaでよく下記のような実装してたけど、Kotlinではどうすればいいかしら?

そのままKotlin化すると

こんな感じかの。

ググると、companion objectで定義している人が多いように見えるのう。

Javaの時より複雑に見えるし、いちいち各クラスにcompanion object定義するのめんどくさいわね。。

どうにかならないかしら?

Kotlinで楽をするなら

そうそう、めんどくさいんじゃよ。

だから、わしゃ、下記のようにAny(JavaでいうObject的なやつ)に拡張プロパティとしてロガーを持たせるようにしとるよ。

Anyを拡張したからどのクラスからも上記のように、あたかも自分がloggerという名前のプロパティを持っているかのようにアクセスできるんじゃ。

お作法的にこんなことしていいのかは知らんが、わしゃ楽だから気に入っておるよ。

一応、拡張プロパティのリファレンスへのリンクを貼っておくよ。

誰かロガーのベストプラクティスを教えてくれんかの。

拡張 - Kotlin Programming Language
Kotlin is a statically typed programming language for the JVM, Android and the browser, 100% interoperable with Java

コメント

タイトルとURLをコピーしました