A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© §傻、才乖 中级黑马   /  2013-12-20 17:17  /  1150 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int[] a1 = new int[3];
  2.                 int[][] a2 = new int[3][];
  3.                 String[] a3 = new String[3];
  4.                 System.out.println(a1.getClass() ==a2.getClass());
  5. System.out.println(a1.getClass()==a3.getClass());
复制代码
两条输出语句报错
Multiple markers at this line
- Incompatible operand types Class<capture#5-of ? extends int[]> and Class<capture#6-of ? extends
  int[][]>
- Incompatible operand types Class<capture#5-of ? extends int[][]> and Class<capture#6-of ?
  extends int[]>
- Line breakpoint:ReflectTest [line: 42] - main(String[])

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

3 个回复

正序浏览

JDK版本问题造成的:对于数组类型的变量,编译器在编译时,其实已经知道类型了,编译器认为这两个类型是不一样的,就报错。你改下JDK版本试下
回复 使用道具 举报
熊志伟 发表于 2013-12-20 17:38
输出语句有问题:
再看下是不是前面有条件语句
  1. public static void main(String[] args) throws Exception {
  2.                 // TODO Auto-generated method stub
  3.                 String str = "abcd";

  4.                 Class<?> clazz = Class.forName("java.lang.String");
  5.                 Constructor<?> constructor = clazz.getConstructor(StringBuilder.class);
  6.                 str = (String) constructor.newInstance(new StringBuilder("abc"));
  7.                 System.out.println(str.charAt(1));

  8.                 ReflectPoint pt = new ReflectPoint(3, 5);
  9.                 String variableName = "y";
  10.                 Field field = getField(pt, variableName);
  11.                 System.out.println(field.get(pt));
  12.                 char oldChar = 'b';
  13.                 char newChar = 'a';
  14.                 changeStringVal(pt, oldChar, newChar);
  15.                 System.out.println(pt);

  16.                 Method methodCharAt = String.class.getMethod("charAt", int.class);
  17.                 System.out.println(methodCharAt.invoke(str, 2));
  18.                 System.out.println(methodCharAt.invoke(str, new Object[] { 1 }));

  19.                 String startingClassName = args[0];
  20.                 Method mainMethod = Class.forName(startingClassName).getMethod("main",String[].class);
  21.                 mainMethod.invoke(null, (Object) new String[] { "aaa", "bbb", "ccc" });

  22.                 int[] a1 = new int[3];
  23.                 int[][] a2 = new int[3][];
  24.                 String[] a3 = new String[3];
  25.                 System.out.println(a1.getClass() ==a2.getClass());
  26.                 System.out.println(a1.getClass()==a3.getClass());
  27.         }
复制代码
回复 使用道具 举报
  1. System.out.println(a1.getClass() ==a2.getClass());

  2. System.out.println(a1.getClass()==a3.getClass());
复制代码
输出语句有问题:
再看下是不是前面有条件语句

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马