Skip to Content
Java から Kotlin へ
book

Java から Kotlin へ

by Duncan McGregor, Nat Pryce
May 2025
Intermediate to advanced
424 pages
6h 55m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from Java から Kotlin へ

第8章. 静的メソッドからトップレベル関数へ

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

スタンドアロン関数はソフトウェアの基本的な構成要素の1つである。 Javaではクラスのメソッドとして宣言しなければならないが、Kotlinではトップレベルのエンティティとして宣言することができる。 どのような場合にトップレベル関数を使うべきなのか、Javaからどのようにリファクタリングすればよいのか。

Javaスタティクス

Java では、メンバー値をフィールド、メンバー関数をメソッドと呼び出す。 デフォルト値では、フィールドの値はクラスのインスタンス単位であり、インスタンスが異なれば値も異なる。 メソッドもインスタンス単位であり、呼び出されたインスタンスの状態にアクセスできる。 しかし、フィールドをstatic 、クラスのすべてのインスタンス間で共有される。静的メソッドはこの共有された状態(および他のクラスの可視静的フィールド)にしかアクセスできないが、この制限の代わりに、クラスのインスタンスを必要とせずにメソッドを呼び出すことができる。

Javaを単純化するために、言語設計者はすべてのコードとデータをクラスに縛り付けた。 クラスにスコープされた静的ステートがあるのだから、クラスにスコープされた静的メソッドが必要だ。 独立したデータや関数を追加することもできたが、静的フィールドとメソッドで十分だ。 言語にオプションがあれば、開発者はそのどちらかを選ばなければならなくなるが、選択肢は少ないほうがいいことが多い。 設計者はこの言語設計の決定をJava仮想マシンに引き継いだが、Java仮想マシンにはトップレベルのコードやデータを表現する手段がない。

静的メソッドと非静的メソッドの両方が同じ型に作用するクラスがあることもある。たとえば、第3章で見た静的解析メソッドを持つEメールクラスなどだ。しかし、静的メソッドだけで構成されたクラスができることもよくある。共有する静的状態がない場合、これらのメソッドは実際には、java.util.Collections クラスのメソッドのように、クラス名を介して呼び出される、グループ化された独立した関数にすぎない: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Kotlin を使用した Android のプログラミング

Kotlin を使用した Android のプログラミング

Pierre-Olivier Laurence, Amanda Hinchman-Dominguez, G. Blake Meike, Mike Dunn
Java 開発者向け DevOps ツール

Java 開発者向け DevOps ツール

Stephen Chin, Melissa McKay, Ixchel Ruiz, Baruch Sadogursky
JavaScript 第7版

JavaScript 第7版

David Flanagan, 村上 列

Publisher Resources

ISBN: 9798341651890Supplemental Content