Javaベースタイプ範囲
Javaベースタイプ範囲
import java.util.Set;
import java.util.TreeSet;
public class FoundationalTypes {
private static int index=0;
private static Set set=new TreeSet();
/**
* The infomation of types will be printed
* @param className
* @throws InstantiationException
* @throws IllegalAccessException
* @throws ClassNotFoundException
* @throws SecurityException
* @throws NoSuchFieldException
*/
private void printInfo(String className)
throws InstantiationException, IllegalAccessException, ClassNotFoundException, SecurityException, NoSuchFieldException{
Class c=Class.forName(className);
String MIN_VALUE="";
String MAX_VALUE="";
if("java.lang.Character".equals(className)){
MIN_VALUE=(int)(java.lang.Character)c.getField("MIN_VALUE").get(c)+"";
MAX_VALUE=(int)(java.lang.Character)c.getField("MAX_VALUE").get(c)+"";
}else{
MIN_VALUE=(c.getField("MIN_VALUE").get(c)).toString();
MAX_VALUE=(c.getField("MAX_VALUE").get(c)).toString();
}
System.out.println((++index)+"、 :"+c.getField("TYPE").get(c)+" :"+c.getField("SIZE").get(c));
System.out.println((++index)+"、 :"+c.getName());
System.out.println((++index)+"、 (MIN_VALUE):"+MIN_VALUE);
System.out.println((++index)+"、 (MAX_VALUE):"+MAX_VALUE);
System.out.println();
int k= Integer.valueOf(c.getField("SIZE").get(c).toString());
set.add((k<10?"0"+k:k)+":"+c.getName());
}
/**
* running
* @param args
*/
public static void main(String[] args) {
try {
String[] types={
"java.lang.Long"
,"java.lang.Double"
,"java.lang.Integer"
,"java.lang.Float"
,"java.lang.Character"
,"java.lang.Short"
,"java.lang.Byte"
// ,"java.lang.Boolean"
};
for(String name : types){
new FoundationalTypes().printInfo(name);
}
StringBuffer starts=new StringBuffer(" \t\t*");
System.out.println("08:java.lang.Boolean"+starts);
for(Object obj:set){
starts.append("*");
System.out.println(obj.toString()+starts);
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
実行結果:
1、基本タイプ:longバイナリビット数:642、パッケージクラス:java.lang.Long 3、最小値(MIN_VALUE):-922337203685475477580884、最大値(MAX_VALUE):922337203685475807
5、基本タイプ:doubleバイナリビット数:646、包装類:java.lang.Double 7、最小値(MIN_VALUE):4.9 E-3248、最大値(MAX_VALUE):1.797693134862357 E 308
9、基本タイプ:int 2進数:3210、包装類:java.lang.Integer 11、最小値(MIN_VALUE):-217448364812、最大値(MAX_VALUE):2174483647
13、基本タイプ:floatバイナリ数:3214、パッケージクラス:java.lang.Float 15、最小値(MIN_VALUE):1.4 E-4516、最大値(MAX_VALUE):3.4028235 E 38
17、基本タイプ:charバイナリ数:1618、包装類:java.lang.Character 19、最小値(MIN_VALUE):020、最大値(MAX_VALUE):65535
21、基本タイプ:shortバイナリ数:1622、包装類:java.lang.Short 23、最小値(MIN_VALUE):-3276824、最大値(MAX_VALUE):32767
25、基本タイプ:byteバイナリ数:826、パッケージクラス:java.lang.Byte 27、最小値(MIN_VALUE):-12828、最大値(MAX_VALUE):127
08:java.lang.Boolean *08:java.lang.Byte **16:java.lang.Character ***16:java.lang.Short ****32:java.lang.Float *****32:java.lang.Integer ******64:java.lang.Double *******64:java.lang.Long ********