【続き】Java変数タイプ認識の3つの方式(補足)
本稿は『Java変数タイプ認識の3つの方式』の補足です
皆さんの大牛と友达の指摘とヒントを経て、足りないところが多いと思って、補足の文章を書きました.
この文書は個人ブログ(テスト版)に更新されました
コンテンツガイド反射方式、メンバー変数のタイプ判定 isInstance用法 汎用識別タイプ を利用する.
テストクラス:
汎用方式タイプ識別ツール:
宣言:
1.オリジナルの文章、転載は明記して本文に接続してください.
2.文章は個人の愚見を反映し、異議があれば討論の指摘を歓迎する
3.もっと詳しくは私の 個人ブログ(テスト版)
皆さんの大牛と友达の指摘とヒントを経て、足りないところが多いと思って、補足の文章を書きました.
この文書は個人ブログ(テスト版)に更新されました
コンテンツガイド
テストクラス:
package com.cxyapi.oo;
import java.util.Date;
import com.cxyapi.generics.TypeToolsGenerics;
/**
* @author cxy @ www.cxyapi.com
*/
public class TypeToolsTest2
{
private static int ii=0;
private static Date d=new Date();
public static void main(String[] args) throws Exception
{
// :
System.out.println(TypeToolsTest2.class.getDeclaredField("ii").getType());
System.out.println(TypeToolsTest2.class.getDeclaredField("d").getType());
System.out.println("----------------------");
// :isInstance ,
System.out.println(Integer.class.isInstance(ii));
System.out.println(Date.class.isInstance(d));
System.out.println("----------------------");
// :
System.out.println(TypeToolsGenerics.getType(ii));
System.out.println(TypeToolsGenerics.getType(2.2));
System.out.println(TypeToolsGenerics.getType(true));
System.out.println(TypeToolsGenerics.getType('a'));
System.out.println(TypeToolsGenerics.getType(d));
}
}
汎用方式タイプ識別ツール:
package com.cxyapi.generics;
import java.util.HashMap;
import java.util.Map;
/**
* @author cxy @ www.cxyapi.com
*/
public class TypeToolsGenerics
{
private static final Map<String,String> typeMap=new HashMap<String,String>();
static
{
typeMap.put("java.lang.Byte", "byte");
typeMap.put("java.lang.Short", "short");
typeMap.put("java.lang.Integer", "int");
typeMap.put("java.lang.Long", "long");
typeMap.put("java.lang.Double", "double");
typeMap.put("java.lang.Float", "float");
typeMap.put("java.lang.Character", "char");
typeMap.put("java.lang.Boolean", "boolean");
}
public final static <T> String getType(T t)
{
if(t==null){return null;}
String typeInfo=t.getClass().getName();
return typeMap.containsKey(typeInfo)?typeMap.get(typeInfo):typeInfo;
}
}
宣言:
1.オリジナルの文章、転載は明記して本文に接続してください.
2.文章は個人の愚見を反映し、異議があれば討論の指摘を歓迎する
3.もっと詳しくは私の 個人ブログ(テスト版)