Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (4)

タグの絞り込みを解除

programmingとGenericsに関するtyosuke2011のブックマーク (2)

  • ジェネリクスの代入を理解する その2

    前回はまず、ジェネリクス型パラメータを伴うList同士の代入互換性について述べました。 今回はそれらのListのadd()メソッドとget()メソッドについて見てきたいと思います。 なお、前回同様に C extends B, B extends A という継承関係があることとして以下話を進めます。 入力値の制約 前回で<? extends B>型には <B>も <C>も <? extends C>も代入できると述べました。 List<? extends B> listBEx = new ArrayList<C>(); ということができるわけですね。 さて、このlistBExにadd()をしてみるとしましょう。 listBEx.add(new B()); 実は、これがコンパイルエラーになるのです。 List<? extends B>型には B型をadd()できないのです! というのも、さきほ

    • 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ジェネリクス再入門 - プログラマーの脳みそ
      • 残りのブックマークを読み込んでいます1

      お知らせ

      公式Twitter

      • @HatenaBookmark

        リリース、障害情報などのサービスのお知らせ

      • @hatebu

        最新の人気エントリーの配信

      処理を実行中です

      キーボードショートカット一覧

      j次のブックマーク

      k前のブックマーク

      lあとで読む

      eコメント一覧を開く

      oページを開く

      はてなブックマーク

      公式Twitter

      はてなのサービス

      • App Storeからダウンロード
      • Google Playで手に入れよう
      Copyright © 2005-2025Hatena. All Rights Reserved.
      設定を変更しましたx

      [8]ページ先頭

      ©2009-2025 Movatter.jp