问题描述
classMyClass<X>{<T>MyClass(Tt){//...}}
上面那个MyClass类怎么调用这个构造函数初始化,写成下面:MyClass<Integer>myObject=new<String>MyClass<>("");编译不通过啊,应该要怎么写?
解决方案
解决方案二:
List<Integer>list=newArrayList<Integer>()难道不是一样的?
解决方案三:
classMyClass<X>{<T>MyClass(Tt){}}publicclassTest{publicstaticvoidmain(Stringargs[]){Integeri=0;MyClass<String>mc=newMyClass<String>(i);}}编译能通过
解决方案四:
如下:MyClass<Integer>myObject=newMyClass<Integer>("");
解决方案五:
MyClass<Integer>myObject=newMyClass<Integer>("");。。。。都两星了。。。。
解决方案六:
MyClass<Integer>myObject=new<String>MyClass<>("");
貌似Integer不是String的泛型类吧,这样实例化对象肯定不能编译过...
解决方案七:
一个是Integer一个是String当然是通不过的。
解决方案八:
对于publicstatic<T>TgetMiddle(T[]a){returna[a.length/2];}
我们可以这么显式的调用:Stringmiddle1=ArrayAlg.<String>getMiddle(names);
那上面那个构造函数如何用这种方式呢?
解决方案九:
引用楼主kypfos的回复:
JavacodeclassMyClass<X>{<T>MyClass(Tt){//...}}上面那个MyClass类怎么调用这个构造函数初始化,写成下面:MyClass<Integer>myObject=new<String>MyClass<>("");编译不通过啊,应该要怎么写?
为什么不写成MyClass<Integer>myObject=new<String>MyClass<Integer>("");?
解决方案十:
引用楼主kypfos的回复:
JavacodeclassMyClass<X>{<T>MyClass(Tt){//...}}编译不通过啊,应该要怎么写?
MyClass<Integer>myObject=newMyClass<Integer>(100);MyClass<String>myObject=newMyClass<String>("abc");
解决方案十一:
类似code=Java]MyClass<String>myObject=newMyClass<String>;[/code]
解决方案十二:
publicstatic<T>TgetMiddle(T[]a){}
解决方案十三:
是这样的,可以编译引用2楼goldenfish1919的回复:
JavacodeclassMyClass<X>{<T>MyClass(Tt){}}publicclassTest{publicstaticvoidmain(Stringargs[]){Integeri=0;MyClass<String>mc=newMyClass<String>(i)……
解决方案十四:
MyClass<Integer>myObject=new<String>MyClass<Integer>("");原来这样也可以,长见识了!
解决方案十五:
构造函数怎么写啊能说清楚点吗?
解决方案:
MyClass<Integer>myObject=newMyClass<Integer>("");你给的两个数据类型不能隐士转换,肯定是不能的。
解决方案:
MyClass<X>myObject=new<T>MyClass<X>(Tt)这个是的!
解决方案:
泛型不是很了解,不过基本上都说到了。