タグ

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

  • 関連タグはありません

タグの絞り込みを解除

genericsとjavaに関するhohoho_ho2005のブックマーク (3)

  • ジェネリクスのカリー化 - プログラマーの脳みそ

    関数を扱えるだけでは、モナドを表現するには不十分過ぎる - xuwei-k's blogを見て、言語の型システムの表現力とその限界とはなんなんだろうということをモヤモヤと考えていた。 ここで話題になっているのは型変数を持つ型変数という話題である。これを便宜的に高階型変数とか、高階型と表現している。Javaのジェネリクスで例えれば public class Foo<T<X>> {} といったように型変数Xを持つ型変数Tという表現の話しである。Javaの言語機能的にはコレはできない。 以前、僕の書いたJavaによる高階型変数の実装 - プログラマーの脳みそではこの出来ないはずの高階型変数をJavaの言語機能で実現するにはどうしたらいいかという工学よりの話題で、型理論のような理論よりの話題としてはどう評価するべきなのかちょっとよくわからない。 Higher-kind Generics Scala

    ジェネリクスのカリー化 - プログラマーの脳みそ
  • ジェネリクスで、親クラスに適用されたパラメータのClassを取得する - CLOVER🍀

    先のエントリの続きです。ちょっと調べたらわかったので。 とりあえず、こんなクラスを用意して class GenericClass<T> { } class StringedClass extends GenericClass<String> { } class NumberedClass extends GenericClass<Number> { } interface GenericInterface<T> { } class StringedImpl implements GenericInterface<String> { } class NumberedImpl implements GenericInterface<Number> { } こんなコードを用意して実行すると import java.lang.reflect.*; public class GenericsExte

    ジェネリクスで、親クラスに適用されたパラメータのClassを取得する - CLOVER🍀
  • リフレクションで、ジェネリクスの情報にアクセスする - CLOVER🍀

    Infinispanでもうちょっと遊ぶ予定だったのですが、オフィシャルサイトのWikiがなんか途中で落ちてしまったので、別のネタで遊ぶことにしました。 *このネタがだいたい終わった頃には、復旧していましたが… 今回は、パラメータ化された型に関する情報をリフレクションを使ってアクセスしてみようと思います。ちょっと前からやってみたかったのです。 ジェネリクスの情報は、ClassクラスやField、Methodなどからアクセスできるのですが、それぞれ以下のような方法で取得できます。 クラス メソッド 取得できる情報 Class getTypeParameters クラス定義において宣言された型変数の情報 Field getGenericType フィールドに適用された型変数の情報 Constructor getGenericParameterTypes コンストラクタのパラメータに関する型変数の

    リフレクションで、ジェネリクスの情報にアクセスする - CLOVER🍀
  • 1