本帖最后由 zl918 于 2012-1-14 10:43 编辑
- public static void main(String args[]) {
- ArrayList<Integer> al = new ArrayList<Integer>();
- try {
- al.getClass().getMethod("add", Object.class).invoke(al, "abc");
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- Class clazz = al.get(0).getClass();
- }
复制代码 抛出 ClassCastException。 把String 转换为 Integer出的错
把Class clazz = al.get(0).getClass();
改为 System.out.println(al.get(0)); 就没问题了
如果 改为 System.out.println(al.get(0).toString); 又出ClassCastException
System.out.println(al.get(0)); 写法为什么会正确
该贴已经同步到 zl918的微博 |
|