请看以下程序:class Hello<T> {public <Q> T heyThere(T i, Q q) {
System.out.println("The inner answer is: " + q);
System.out.println("The outer answer is: " + i);
return i;
}
}
public class Main {private static void Hello(Object... args) {}public static void main(String[] args) {Hello<Integer>[] ar = new Hello[5];
ar[0] = new Hello<Integer>();
ar[0].<Float>heyThere(80, 20.09f);
}
}
在Hello<Integer>[] ar = new Hello[5];这一行有一个Warning,请问如何处理才能去掉这个非安全的类型检查的警告。

解决方案 »

  1.   

    Hello<Integer>[] ar = new Hello<Integer>[5];
      

  2.   

    Hello<Integer>[] ar = new Hello<Integer>[5];
      

  3.   

    呵呵,谢谢二楼。
    但是,如果用Hello<Integer>[] ar = new Hello<Integer>[5];
    就变成error了。错误信息为:generic array creation
    目前我那个虽然是Warniing,但是还好用用。其实在Java中,只有构造方法才能进行特化,即指定模板参数类型。
    如:Hello<Integer> hello = new Hello<Integer>();  这倒是可以。
    还有: Hello[] ar = new Hello[]{ new Hello<Integer>(), new Hello<Float>() };
    这既没有Warning也没有Error,不过hello后面什么事都干不了了。Java在范型编程上用起来还不太爽,C++就爽多了啊。