タグ

2013年5月30日のブックマーク (5件)

  • ワイルドカード<?>と型パラメータ<T>の違いがすっきりしない。

    ワイルドカード<?>と型パラメータ<T>の違いがすっきりしない。 現在、Javaを勉強中の初心者です。一応、Cの心得はあります。 とりあえず、SJC-P資格の取得を目的として勉強していますが、どうも<?>のワイルドカードがすっきりと理解できません。というのも、Generics表記である<T>との違いが明確に区別できずにいるからです。 例えば、下のサンプルプログラムを例として、<T>と<?>の使い分けは、どのように頭を整理すればよいのでしょうか? Java初心者ゆえ、できるだけ難しい言葉は使わずに教えていただけると幸いです。 ---------------------------------------------------- class WildCardSample1<T>{ private T type; public WildCardSample1(T type){ this.typ

    ワイルドカード<?>と型パラメータ<T>の違いがすっきりしない。
  • 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ジェネリクス再入門 - プログラマーの脳みそ
  • 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

    Kshi_Kshi
    Kshi_Kshi 2013/05/30
    generic の解説
  • いまさら聞けない「Javadoc」と「アノテーション」入門

    いまさら聞けない「Javadoc」と「アノテーション」入門:【改訂版】Eclipseではじめるプログラミング(22)(1/4 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 注釈とコメントで開発しやすくしよう 開発者がソースコードにコメントを自由に記述すると、統一性がなくなり、同じ内容をさまざまな表現で書いてしまいます。これを防ぎ、重要な情報について統一的な表現で記述したいときは、「アノテーション(annotation、注釈)」を使うことを検討してみましょう。 Javaではアノテーションをプログラムのソースコードへプログラムのメタデータとして記述できます。また、プログラムにア

    いまさら聞けない「Javadoc」と「アノテーション」入門
  • Javaアノテーションメモ(Hishidama's Java annotation Memo)

    それぞれの指定の意味する場所は、以下のようになっている。 @LocationExampleAnnotation //TYPE:クラス定義やインターフェース定義をする場所 public class アノテーションを付けるサンプル { @LocationExampleAnnotation //FIELD:フィールド(メンバー変数)定義 protected int value; @LocationExampleAnnotation //CONSTRUCTOR:コンストラクター定義 public アノテーションを付けるサンプル() { } @LocationExampleAnnotation //METHOD:メソッド定義 public void メソッド() { } public int 引数ありメソッド( @LocationExampleAnnotation //PARAMETER:パラメータ

    Kshi_Kshi
    Kshi_Kshi 2013/05/30
    hishidamaさんありがとう