草庐IT

Generics

全部标签

java:多维泛型数组创建

如何在java中创建通用项的多维数组?考虑类:classA{Tt;publicA(Tt){this.t=t;}}当我尝试创建多维数组时:A[][]array=newA[2][3];我收到以下错误:genericarraycreationA[][]array=newA[2][3];^我尝试了以下方法:A[][]array=(A[][])(newObject[2]3]);但这只是抛出:java.lang.ClassCastException修复了什么?(我预计人们会推荐使用列表。请解释如何使用数组来实现这一点。) 最佳答案 我可以做这样

java - 通配符符号的主要意图或目的?延伸 T'

我对集合中使用的通用通配符表示法有一些(违反直觉的)观察。通配符的目的List是允许列表(T的子类型)的赋值到“?”列表的引用的T'。它的目的不是特别允许将T的子类型的元素添加到列表中(of'?ofT'),即使在List中也是可能的。.Listlist=newArrayList();//invalid,ListisnotassignabletoListListlist=newArrayList();//OKlist.add(newInteger(1));//valid,'?extendsNumber'notneeded!Listlist1=newArrayList();//Valid,

java - Java中的所有通配符都可以用非通配符类型代替吗?

我找不到任何通配符不能被泛型替换的例子。例如:publicvoiddummy(Listlist);相当于publicvoiddummy(Listlist);或publicListdummy2(Listlist);相当于publicListdummy(Listlist);所以我不明白为什么要创建通配符,因为泛型已经在做这项工作了。有什么想法或意见吗? 最佳答案 不,它并不总是可替换的。Listfoo();不等于Listfoo();因为你不知道T打电话时foo()(而且您无法知道List将foo()返回什么。同样的事情也发生在您的第二个

Java 泛型 : adding wrong type in collection

谁能解释一下?我有这两个类:abstractclassAnimal{publicvoideat(){System.out.println("Animaliseating");}}classDogextendsAnimal{publicvoidwoof(){System.out.println("woof");}}classCatextendsAnimal{publicvoidmeow(){System.out.println("meow");}}这是Action:importjava.util.ArrayList;importjava.util.List;publicclassTest

java - 如何使用反射从 POJO 中获取属性名称和值?

所以我正在编写一个“POJO到JSON”转换器。我希望能够传递List对象并转换为JSON。希望这是有意义的/****NOTCOMPLETE!!!OBVIOUSLY!!!*/publicabstractclassJsonatorimplementsSerializable{privateClassentityClass;privateJSONObjectjson;privateJSONArrayjsonArray;publicJsonator(ClassentityClass){this.entityClass=entityClass;}publicvoidconvert(Listpa

java - 如何调用泛型对象的静态类方法?

我需要将泛型类型的类传递给类的构造函数。类(class)是SpiceRequest来自RoboSpice用于引用构造函数的Android库。类需要将泛型的类传递给构造函数似乎很奇怪,而它可以从泛型类型本身访问,在本例中为RESULT.class,但也许我错了。无论如何,我不想更改库的代码,而是需要为SpiceRequest的泛型类型使用泛型类型。,Map.这是我的代码:SpiceRequest>request=newSpiceRequest>(???){...};以及SpiceRequest的签名构造函数:publicSpiceRequest(finalClassclazz){...}

java - 枚举类型的约束泛型类型以实现某些接口(interface)

我有实现MyInterface的枚举。在使用该枚举创建其他类时,我想将enumClz限制为已实现MyInterface的类。所以我在泛型类型声明中将签名描述为“TextendsEnum”。public>C1(ClassenumClz){for(TanEnumConst:enumClz.getEnumConstants()){//....process}}令我惊讶的是IDE说它在“TextendsMyInterface”处“意外绑定(bind)”。我不知道这两个字的错误信息是什么意思,有什么解决办法吗?顺便说一句,出于好奇,我有一个奇怪的问题,虽然不是很重要。枚举类型T是否可以等效于以下

java - 为什么我不能在泛型类上静态引用内部类的静态方法?

请完成整个问题以获得完整的想法。先让类(class)Box给出如下:-publicclassBox{privateTt;publicvoidset(Tt){this.t=t;System.out.println("value:\n");System.out.printf("%s",t.toString());}publicTget(){returnt;}staticintretInt(){return5;}publicvoidinspect(Uu){System.out.println("T:"+t.getClass().getName());System.out.println("U

Java模板函数

我有一个函数,有时必须返回一个Date,有时返回一个DateTime(Joda-Time)。staticpublicTconvertTimeForServer(DateTimetoSave){DateTimetemp=null;try{temp=toSave.withZone(DateTimeZone.forID(getServerTimeZone()));}catch(Exceptione){}TtoReturn=null;if(toReturn.getClass().equals(temp)){return(T)temp;//ReturnDATETIME}else{return(T

java - 无法理解这个 Java Stream+Generics 示例

谁能帮我理解为什么这段代码的行为与评论中描述的一样//1)compilesListl=Stream.of(1,2,3).collect(ArrayList::new,ArrayList::add,ArrayList::addAll);/**2)doesnotcompile**Exceptioninthread"main"java.lang.Error:Unresolvedcompilationproblems:*Typemismatch:cannotconvertfromObjectto*ThetypeArrayListdoesnotdefineadd(Object,Integer)t