タグ

genericsに関するtm8rのブックマーク (4)

  • JJUG CCC 2013 Fall でジェネリクスのセッションやりました - プログラマーの脳みそ

    資料はslideshareに上げました。 ジェネリクスの基礎と クラス設計への応用 ジェネリクスの基礎と�クラス設計への応用 from nagise 内容はジェネリクスの基礎的なところから、話題を網羅する感じでかいつまんで紹介といったところです。 セッションの元ネタは当blogの過去記事なのでつっこんだ情報が欲しい人はGenericsカテゴリを参照してください。 セッション中に出てきた比較的ライトで比較的実用的な部分は以下の過去記事を読むと良いでしょう ジェネリックな設計 基礎編 (2012年のJJUGセッションの補足)導入部、3種類の山括弧 Javaジェネリクス再入門 3種類の山括弧、2種類のスコープ ジェネリクスの代入を理解する その1 (旧blog)パラメタライズドタイプの代入互換性 ジェネリクスの代入を理解する その2 (旧blog)ワイルドカードの代入互換性 ジェネリクスの代入互

    JJUG CCC 2013 Fall でジェネリクスのセッションやりました - プログラマーの脳みそ
  • Javaのジェネリクスとリフレクション応用編 - プログラマーの脳みそ

    前回から随分と間が開いてしまった。Javaのジェネリクスはイレイジャ方式だけどもクラスにバインドした型の情報が残る場合があるんだよシリーズの第2弾である。 具体的にどういう場合にバインドした型が残るのかという話だが、端的に列挙すると以下のものである。 フィールドにパラメタライズドタイプ(parameterized-type)を用いた場合 メソッド引数や戻り値型にパラメタライズドタイプを用いた場合 コンストラクタにパラメタライズドタイプを用いた場合 継承によるバインドを行った場合 大きく分ければパラメタライズドタイプを使ったメンバのシグネチャか、継承によるバインドの2種類である。 前回、例に挙げたのはパラメタライズドタイプを引数にとるケースだった。 import java.lang.reflect.*; import java.util.List; public class Reflecti

    Javaのジェネリクスとリフレクション応用編 - プログラマーの脳みそ
  • ジェネリックな設計 基礎編 - プログラマーの脳みそ

    11/10に開催されたJJUG CCC 2012 Fallでジェネリクスについてセッションを行いました。 このエントリはセッション内容を補足するものです。セッションはジェネリックなクラスの設計を行えるようになって欲しいという狙いで話をしました。ジェネリックなクラスを利用できるというのは前提条件として書いてます。入門的な内容であれば Javaジェネリクス再入門 - プログラマーの脳みそ を参考にしてください。 セッション資料はこちら ジェネリクスの基礎と応用 JJUG CCC 2012 Fall ジェネリクスのスコープ まずジェネリクスのスコープの話から入ります。Javaのジェネリクスには2つのスコープがあります。 メソッドをスコープとした型変数 インスタンスをスコープとした型変数 後者はおなじみの public interface List<E> などの型変数です。 これに対して pub

    ジェネリックな設計 基礎編 - プログラマーの脳みそ
  • Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して

    Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具

    Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して
  • 1