Last active
December 17, 2015 12:39
-
-
Save hidekuro/5611205 to your computer and use it in GitHub Desktop.
一般的なアプリ開発において、型引数にした型のClassオブジェクトを取得したり、
インスタンス化したりしたくなった場合、設計を疑うべきであるという前提のもと、
一般的ではない特殊なケースにおいて型引数のClassオブジェクトを特定する方法。 可変長引数を省略した場合、実装側には長さ0の配列が渡されることを利用する。 via http://d.hatena.ne.jp/language_and_engineering/20120502/p1
via http://d.hatena.ne.jp/Nagise/20100202/1265131791
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MyClass<T> { | |
private Class<T> typeParamClass; | |
// このメソッドを引数なしで呼び出すと型が解決される | |
public void resolveTypeParamClass(T... t) { | |
@SuppressWarnings("unchecked") | |
Class<T> clazz = (Class<T>) t.getClass().getComponentType(); | |
this.typeParamClass = clazz; | |
} | |
public Class<T> getTypeParamClass() { | |
return typeParamClass; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment