import java.util.Date; import java.util.HashMap; import java.util.Map;public class Test { public static void main(String[] args) { String a = "123"; String[] aa = {"1","2","3"}; int[] b = {1,2,3}; Date date = new Date(); Map map = new HashMap(); map.put("1", a); map.put("2", aa); map.put("3", 1); map.put("4", b); map.put("5", date);
StringBuilder sb = new StringBuilder();
for(Object key : map.keySet()) { Class clazz = map.get(key).getClass(); sb.append(key); if(clazz.isArray()) { sb.append(" is array,"); sb.append(" and the array value's type is "); sb.append(clazz.getSimpleName()); } else { sb.append(" is "); sb.append(clazz.getSimpleName()); } sb.append("\n"); } System.out.println(sb); } }
或者用getName(),那么可以看到如下:Element Type Encoding boolean Z byte B char C class or interface Lclassname; double D float F int I long J short S ------ 打印的内容是:维度+类型标识符 例:int[1][2] --> [[I boolean[1][2][3] --> [[[Z 这样就可以知道是什么类型的了
String[] aa = {"1","2","3"};
System.out.println(a.getClass().isArray()); //false
System.out.println(aa.getClass().isArray()); //true
String[] s4={"ss","dd","aa"};
Object o=(Object)s4; if(o instanceof String[]){
System.out.println("String---数组");
}else if(o instanceof String){
System.out.println("String");
}
怎么判断 instanceof 不能用那还有其他的方法没!! 求救啊
import java.util.Date;
import java.util.HashMap;
import java.util.Map;public class Test { public static void main(String[] args) {
String a = "123";
String[] aa = {"1","2","3"};
int[] b = {1,2,3};
Date date = new Date();
Map map = new HashMap();
map.put("1", a);
map.put("2", aa);
map.put("3", 1);
map.put("4", b);
map.put("5", date);
StringBuilder sb = new StringBuilder();
for(Object key : map.keySet()) {
Class clazz = map.get(key).getClass();
sb.append(key);
if(clazz.isArray()) {
sb.append(" is array,");
sb.append(" and the array value's type is ");
sb.append(clazz.getSimpleName());
} else {
sb.append(" is ");
sb.append(clazz.getSimpleName());
}
sb.append("\n");
}
System.out.println(sb);
}
}
String []a;数组
String a;字符串
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S
------
打印的内容是:维度+类型标识符
例:int[1][2] --> [[I
boolean[1][2][3] --> [[[Z
这样就可以知道是什么类型的了