タグ

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

タグの絞り込みを解除

genericsとtypeに関するdaisuke-mのブックマーク (4)

  • Javaのジェネリクスとリフレクション - プログラマーの脳みそ

    今回のテーマはジェネリクスとリフレクション。Javaのジェネリクスはイレイジャ方式なのでリフレクションでは何も得られないと思ってはいまいか。 public void hoge(List<String> list) {} といったメソッドがあったとして、リフレクションでこのメソッドの情報を得るとしよう。 import java.lang.reflect.*; import java.util.List; public class ReflectionTest { public static void main(String[] args) throws Exception { Method m = ReflectionTest.class.getMethod("hoge", List.class); Type[] types = m.getGenericParameterTypes(); f

    Javaのジェネリクスとリフレクション - プログラマーの脳みそ
  • ジェネリクスの基礎と応用 JJUG CCC 2012 Fall

    1. ジェネリクスの基礎と応用 Twetter : @nagise はてな : Nagise 所属  (株) Abby  java-ja  北陸エンジニアグループ 2. ジェネリクスのスコープ メソッドの中でのみ有効なジェネリクス public static <T> void hoge(T t) { … } インスタンスの中でのみ有効なジェネリク ス class Hoge<T> { Tt; ... }

    ジェネリクスの基礎と応用 JJUG CCC 2012 Fall
  • Java総称型のワイルドカードを上手に使いこなすための勘所 - 達人プログラマーを目指して

    Java5以降では総称型(generics)がJava言語に導入されています。総称型自体は、最近の静的な型付けのプログラミング言語で珍しいことではなく、現在の最新版では.NETのC#やVisual Basicにも導入されています。一般的には総称型をサポートするクラスライブラリを自分で正しく定義することは非常にスキルがいるが、事前に定義されたクラスを使うだけであれば、それほど難しくないとされています。しかし、Java言語の総称型はエントリで説明するように特殊なところがあり、単に利用するだけでも他の言語に比べて遥かに難しいところがあるというのも事実です。特に総称型をパラメータ化する際に指定するワイルドカード型(List<? extends Serializable>など)の意味を正しく理解して使いこなすことは簡単なことではありません。その結果、昔のJDK1.4までのように型パラメーターのない

    Java総称型のワイルドカードを上手に使いこなすための勘所 - 達人プログラマーを目指して
    daisuke-m
    daisuke-m 2011/03/27
    あと1年くらい早くこのエントリを読みたかったw 理解するの苦労したんだぜぃ。。。
  • Javaによる高階型変数の実装 - プログラマーの脳みそ

    高階関数というものをご存知か。関数自身を引数あるいは戻り値に取る関数のことである。「高階」は「こうかい」と読む。その昔「たかしな」と読んだ人がいたとか、いないとか。 先のエントリ「HttpSessionを型安全にする」では「javax.servlet.http.HttpSessionのsetAttribute()/getAttribute()のようなモノをどうやって型安全にするか」という動機付けから、 public class KeyValue<K> { public <T> void put(K<T> key, T value){} } といったことをやろうとして、Javaの言語仕様上、型変数に型変数を持たせることができないので実現できないと述べた。 簡単に解説すると、ここでKayValueはHashMap的なキーを渡せば値を返すオブジェクトで、型変数Kはキーの集合体を表現している。ty

    Javaによる高階型変数の実装 - プログラマーの脳みそ
    daisuke-m
    daisuke-m 2011/01/25
    どう見ても変態的だwww 恐れ入ったwww
  • 1