Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

コレクションとAndroid非同期処理の基本

Android開発のためのJava SE再入門(5)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/09/28 14:00

 Androidアプリケーションは、Java言語を用いて開発できます。Androidアプリケーションの開発にあたっては、米グーグル社が提供するAndorid SDK(Software Development Kit、開発キット)の知識は当然ながら、基本となるのはJava SEです。この連載では、Javaでの開発の基礎となるJava SEを、実際にAndorid上で実行できるソースコードとともに解説します。

目次

はじめに

 第5回目の本稿は、java.utilパッケージから主にコレクションと呼ばれるAPIを中心に解説します。コレクションとは、複数のオブジェクトを集合としてあつかう仕組みのことで、Android開発においてもよく使用されるものです。後半では、AndroidのGUIと非同期処理の問題をとりあげます。

 なおjava.utilパッケージの各クラスの詳細な仕様については、オンラインのJava Platform, Standard Edition 6 API仕様や参考書籍などをご覧ください。

対象読者

 Androidアプリケーションの開発を始めたい方で、JavaとEclipseのごく基本的な知識がある方を対象とします。

ジェネリックス

 コレクションの前に、まずジェネリックスについて少し説明しておきましょう。

 ジェネリックスとは、<>で囲んだ型名(型パラメータ)をクラスやメソッドに付加して定義し、汎用的なクラスをコンパイル時に特定の型に対応づけるようにする機能で、J2SE 5.0から導入されました。

ジェネリックスでのクラス定義

 ジェネリックスを用いたクラス定義は、例えば次のようになります。

class GenericSample<T> {

    T val;

    public void set(T val) {
        this.val = val;
    }
}

 GenericSample<T>のTが型パラメータです。型パラメータには、任意の文字が利用できますが、通常TやE、Kといった、その型の使用目的や意味を表す名称(Type、Element、Keyなど)の先頭大文字1文字を用います。

 このクラスをインスタンス化するには、次のようにコンストラクタで型を指定します。こうすることで、型パラメータのTの部分が指定した型に置き換わります。setメソッドの引数も指定した型になるので、他の型を使うと、コンパイルエラーとなってしまいます。

// Integerクラスを指定したGenericSample
GenericSample<Integer> sample1 = new GenericSample<Integer>();
sample1.set(123);

// Stringクラスを指定したGenericSample
GenericSample<String>  sample2 = new GenericSample<String>();
sample2.set("文字列");

// 型が異なるのでコンパイルできない
// sample2.set(123);

java.utilパッケージ

 java.utilパッケージやその下位パッケージで提供されるAPIには、今回紹介するコレクション関連の他、プロパティ、乱数、タイマー、ロケール、正規表現といった、文字通りユーティリティ機能のものが数多くあります。ただ紙面に限りがありますので、コレクション以外のAPIについては、また回をあらためて紹介することにします。

Android SDK APIレベルについて

 Android SDKに含まれるjava.utilパッケージは、現行のJava SE 6のパッケージとまったく同じというわけではありません。API Levelが低いと、Java SE 6のjava.utilパッケージに含まれるクラスやメソッドの一部が、実装されていない場合があります。

 例えば、後述するQueueインターフェースのaddメソッドは、API Level 11以降で実装されました。またQueueインターフェースを拡張したDequeインターフェースは、API Level 9以降でしか使用することができません。

 その他、API Levelの微妙な違いは、Android Developersサイトで確認するようにしてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 高江 賢(タカエ ケン)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Android開発のためのJava SE再入門
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5