タグ

ジェネリクスに関するfjwr38のブックマーク (5)

  • ジェネリック: Java vs C#

     ジェネリック: Java vs C# 概要 2005 年初頭に公開された Java 言語仕様第 3 版 (開発実行環境は 2004 年秋に先立って公開されていた) と 2005 年 6 月に ECMA に承認された C# 言語仕様第 3 版 (開発実行環境は 2005 年末に公開された) では、共にジェネリック (ジェネリックス、ジェネリクス、総称: generics) という新しい概念が導入され、文法もそれに伴って変化している。 Java と C# はどちらも静的な型付けを行うオブジェクト指向プログラミング言語であり、C 言語を基にした 似たような文法をしている。 この記事では、Java 言語のジェネリックと C# 言語のジェネリックを、その機能や文法の違いを中心に比較する。 ジェネリックな型 ジェネリックな型は、どちらの言語でも山型の括弧を使って表される。ジェ

  • 1. ジェネリクス

    2005.10.31 株式会社四次元データ CTO 畠中晃弘 Java言語機能(JDK5.0(Tiger)新機能) 1章 ジェネリクス 1.1. ジェネリクスとは 1.2. ジェネリックなクラス・インタフェースの作成 1.3. 型引数 1.4. ジェネリクスなクラス・インタフェースの利用 1.1. ジェネリクスとは ジェネリクスとは、「総称性(Genericity)」「ジェネリック・プログラミング」とも呼ばれるプログラミング技法で、 オブジェクト指向とは異なるパラダイムからきたものです。 データの型に束縛されず、型そのものをパラメータ化して扱うことができます。 Javaでは主にコレクションクラスに導入されています。 まずJava Genericsの感じをつかんでもらうために、Genericsを用いた場合のプログラムと用いなかった場合のプログラム例を以下に示します。 最初にGenericsを

  • Java のジェネリックス - Java 入門

    ジェネリックス (Generics) というのは汎用的なクラスやメソッドを特定の型に対応づける機能のことで、Java SE5.0 から導入されました。 例えば「べ物コンテナ」という汎用的なコンテナを作ったときに、それを「ラーメンコンテナ」「カレーコンテナ」という風に特定の型にきちっと決めるものです。 それがなぜいいのか?どうやって作るのか?どうやって使うのか?ということをみていきたいと思います。 なぜ Java でジェネリックスが必要なのか? なぜジェネリックスなのか? ジェネリックスの登場 Java のジェネリックスの命名規則 Java のジェネリックスでのサブタイプ Java のジェネリックスの Bounded 型 Java のジェネリックスのワイルドカード ジェネリックスのワイルドカード型とは Upper Bound ワイルドカード型 Lower Bound ワイルドカード型 Bo

    Java のジェネリックス - Java 入門
  • Java総称型メモ(Hishidama's Java Generics Memo)

    メソッドの総称型 メソッドのみに総称型を適用した定義を行うことも出来る。[2007-06-12] 戻り値の型の直前に「<仮型引数, 仮型引数…>」を置くだけ。後はクラスの場合と同様。 public static <T> T notNull(T arg1, T arg2) { T ret; if (arg1 != null) { ret = arg1; } else { ret = arg2; } return ret; } このメソッドを呼び出す側は、クラスの場合とは異なり、明示的に型引数を指定する必要は無い。 指定した引数の値に応じて、自動的に型が判断される。 String s = notNull("abc", "def"); //型引数はString Long l = notNull(new Long(1), new Long(2)); //型引数はLong int i = notNu

  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
    fjwr38
    fjwr38 2012/05/30
    Javaのハマりどころらしい
  • 1