Java7は2011年7月にリリースされたバージョンです。
この記事では、Java7のAPIについて紹介します。
最新バージョンやアップデートについては、以下の記事で解説しているので必要であれば参考にしてみてください。
【関連記事】
▶︎サポートが切れたJavaは危険!java 8 update 131などのセキュリティ更新はこまめに
JavaのAPIとは
Java7の話の前に「そもそもAPIは何か」という点をここでは解説します。
APIとは、「Application Programming Interface」の略で、システムが提供する機能や、外部のライブラリを使用するためのインターフェースのことです。
Javaでクラスやインターフェースは、APIで提供されています。
そのため、プログラムを実装する場合は、APIで提供されているクラスのメソッドを呼び出し、必要な機能を利用する形です。
例えば、文字列を出力する「System.out.println」もJavaの標準APIを使用しています。
Javaでプログラムを開発する場合、すでに用意されているさまざまなAPIを利用して作成するのが基本です。
既存APIを活用すると、コード作成にかける労力を削減でき、実装したい本質的な作業に集中できるでしょう。
当然、Javaのクラスやメソッドを自作することでもAPIは作れます。
しかし、それだと時間がかかり、コード量も数千〜数万行になることも考えられます。
Javaの標準APIを活用することで、たった数行でプログラムを作成することが可能です。
- APIは外部のライブラリを使用するためのインターフェース
- APIで提供されているクラスのメソッドを呼び出して、必要な機能を利用できる
- 具体的には文字列の出力やファイルの操作など
- APIは自作でクラスを作ってもOK
Java7のAPIドキュメントとその読み方
Javaで用意されている標準APIは、Oracleでドキュメントが用意されています。
Javaの仕様やプログラミングで必要なパッケージ・クラスなどの情報について、記載されている公式リファレンスです。
ドキュメントとして、次の2つがあります。
- Java SE APIドキュメント:Java SE(Java Platform, Standard Edition)とJDK(Java Development Kit )に関するドキュメントです。過去バージョンの情報も確認できます。
- 開発者ガイド:Java SEとJDKで開発に必要な情報が書かれています。Java SE APIドキュメントよりは上級者向けの資料と言えます。
とは言え、ドキュメントの読み方がわからないと困りますよね。
ここでは、Java SE APIドキュメントの読み方を確認しましょう。
Java7のAPIドキュメントは、以下のURLから確認できます。
https://docs.oracle.com/javase/jp/7/api/
URLを開くと次のような画面が確認できます。
画面は3分割されており、左上がパッケージの情報、左下がクラス情報、そして右画面がその詳細画面です。
まず、Javaは使用時にパッケージを指定した上で、パッケージに含まれる機能が使えます。
パッケージは、Javaの名前空間にあるクラス・インタフェースをまとめた機能のことです。
名前空間は、各要素に一意の異なる名前をつけなければ識別できない範囲のことを指します。
名前の集合全体を小さな空間に区切り、個々に違う識別名を付与することで、その空間内では他空間に含まれる名前の競合や衝突が起きません。
例えば、「ポテパンスタイル株式会社」という名前空間があり、その中に「田中さん」「鈴木さん」という識別子を割り振っていれば、「プログラム株式会社」にいる「田中さん」とは異なる人だと判別できるという訳です。
そして、クラス・インターフェースの中には、さらにメソッドが用意されています。
メソッドは、クラス・インターフェースの中で使えるより細かい機能のことです。
つまり、JavaのAPIは次の3つの構成になっています。
- パッケージ
- パッケージで使えるクラス・インタフェース
- クラス・インタフェースで使えるメソッド
では、JavaのAPIの中からよく使う「Stringクラス」を見てみましょう。
Stringクラスの詳細を見てみると、クラス名の上「java.lang」と書かれており、パッケージ名となっています。
そして詳細情報を見ていくと、Stringクラスの概要や使い方が書かれており、さらに下にフィールドやコンストラクタ・メソッドなどの情報もまとめられています。
Stringクラスで使いたいメソッドがあれば、「メソッドと説明」に書かれているメソッド名をクリックすることで、パラメータや戻り値など、メソッドの詳細を確認できます。
このように、APIドキュメントにはさまざまな情報が書かれています。
Java7の主要APIを紹介
ここでは、Java7の主要APIを見ていきましょう。
- lang:Javaプログラム言語の設計にあたり基本的なクラスを提供
- swing:画面上でコンポーネントの配置および方向指定を行います
- security:セキュリティーフレームワークのクラスとインタフェースを提供
- List:格納した順にindexが生成され、値と紐づけされるコレクション
- ArrayList:要素数が決まっていない動的な配列を扱うクラス
- Map:キーと値の2つの要素で構成されるコレクション
- Set:重複しない要素の集まりのコレクション
- File:ファイルを扱うためのクラス
- Date:指定した日時を取得したり、日時を計算するクラス
- Calendar:特定の日付や日時を指定して日付の操作を行うためのクラス
- Math:数値の計算を行うクラス
- String:文字列を扱うクラス
特に、java.langはよく使うパッケージなので、しっかり確認しておくと良いでしょう。
この記事でも、いくつかクラスの使い方などを紹介しているので、参考までに紹介します。
【関連記事】
▶︎Javaの文字列操作を理解しよう!Stringクラスの基本的な使い方を解説!
▶︎【Java入門】日付情報を取得出来るCalendarクラスを理解しよう!
▶︎【Java入門】ArrayListの使い方!配列との違いも解説
その他のバージョンのAPI
Java7以外のバージョンのAPIドキュメントを確認したい場合は、「Java SE API & ドキュメント」で確認できます。
当然ながら、最新バージョンでしか提供されていないパッケージ・クラスは、対応するバージョンのAPIドキュメントにしか書かれていません。
ドキュメントを調べる場合は、開発バージョンも確認しながら情報を探してくださいね。
最新APIの活用・廃止されたAPIの注意点
Javaの標準APIは、Javaのバージョンが上がるたびに追加・更新されます。
例えば、Java8で追加されたStream APIとラムダ式では、配列やリストの操作がとてもにシンプルになりました。
次の例は、リストの要素から偶数の要素を抽出するサンプルコードです。
Java7以前の方法と、Java8で追加されたStream APIを使った方法をコードを比較してみましょう。
パッと見てもわかるように、Stream APIは、リストや配列に関する処理がシンプルで直感的に書けるようになっています。
【Java7以前の方法】
// 1~6までの値をリストに格納 List<Integer> list = Arrays.asList(new Integer[] {1, 2, 3, 4, 5, 6}); // 偶数の要素を格納するリスト List<Integer> result = new ArrayList<>(); // 1件ずつ要素が偶数か判定し、偶数の要素をresultに追加する for (int i = 0; i < list.size(); i++) { if (list.get(i) % 2 == 0) { result.add(list.get(i)); } } // 結果をコンソールに出力 for (Integer integer : result) { System.out.println(integer); }
【Java8以降でStream APIを使った方法】
// 1~6までの値をリストに格納 List list = Arrays.asList(new Integer[] {1, 2, 3, 4, 5, 6}); // listから偶数の要素のみを抽出 Stream result = list.stream().filter(n -> n % 2 == 0); // 結果をコンソールに出力 result.forEach(n -> System.out.println(n));
JavaのAPIはバージョンの更新にあわせて変化するため、一度覚えたら終わりとは言えません。
さらに便利なAPIが追加されていないか、バージョンアップに合わせて情報をチェックしておくことが大切です。
一方で、バージョンアップにともなって、古いAPIが削除されることもあります。
そのため、APIが廃止になったことを確認できたら、該当APIは使わないように気をつけましょう。
まとめ
今回は、JavaのAPIとドキュメントの読み方、Java7のAPIについて解説しました。
Javaでプログラム開発をする上で、ドキュメントをしっかり読めるかどうかは重要です。
ぜひこの記事を参考に、APIドキュメントの読み方を理解し、開発に役立ててください。