草庐IT

Generics

全部标签

java - 覆盖具有不同签名的方法

我有一个父类(superclass)的方法:protected,TextendsVO>voidprocessarRelatorioComEstado(DatedataInicial,DatedataFinal,Eestado)throwsRelatorioException{thrownewUnsupportedOperationException("methodnotoverridden");}在它的一个子类中我想做以下事情:@Overrideprotected>DemonstrativoReceitaDespesasAnexo12VoprocessarRelatorioComEst

Java:嵌套递归泛型

我有一组扩展一些基本实体的类。该集合中的类也可以相互扩展,创建嵌套层次结构。我的目标是让所有类都可以访问创建自身新实例的方法。我想在我的基本实体中实现这个方法,以便所有扩展类都继承它。下面是为我的模式定义的三个示例类:BaseEntity.javapublicabstractclassBaseEntity{Classclazz;publicBaseEntity(Classclazz){this.clazz=clazz;}publicEgetNewInstance()throwsIllegalAccessException,InstantiationException{returncla

java - 通用与通配符未知类型

建议什么时候做:publicbooleanhasPropertyX(Listalist);对比publicbooleanhasPropertyX(Listalist);看起来它们都同样有效。 最佳答案 没有类型化的返回值,我能想到的唯一区别是在方法调用期间显式类型化声明的第一种方式。例如,您在类型化类中使用它CListinput=...;booleanvar=obj.hasProperty(input);会引发编译器错误。但是为什么会有人想要这样做...很好的问题,即使答案很可能是相同的。

java - 泛型方法返回 'nothing'但不能返回null时返回什么?

假设我有一个这样的库方法(非常简短):publicstaticOptionaldoSomethingWith(Callablecallable){try{returnOptional.of(callable.call());}catch(Exceptionex){//DosomethingwithexreturnOptional.empty();}}我想要一些不返回值的东西,比如:Library.doSomethingWith(()->{foo();return/*what2*/;});对于不返回值的泛型方法,我的第一直觉是将类型设置为Void并返回null,但是因为结果被包裹在>可选

java - 获取参数化类参数的类型?

我有以下类(class)publicclassMyClass{publicClassgetDomainClass(){GETTHECLASSOFT}}我已经用谷歌搜索了这个问题,我能找到的所有答案都告诉我使用getGenericSuperClass(),但是这个方法的问题是我必须有第二个类来扩展MyClass而我不想这样做.我需要的是获取具体类的参数化类型? 最佳答案 你不能。由于类型删除,您想要的信息(即T的值)在运行时不可用。 关于java-获取参数化类参数的类型?,我们在Stack

java - 在 Java 中安全地遍历原始迭代器?

我正在使用返回原始迭代器的第三方库,例如Iteratorchildren=element.getChildElements();我知道实际类型,但我不一定相信第三方库将来会坚持使用它。有两种(我能想到的)有点冒险的方法来遍历它:@SuppressWarnings("unchecked")IteratorcurrentChildren=(Iterator)currentElement.getChildElements();或Iteratorchildren=element.getChildElements();while(null!=children&&children.hasNext(

java - 在 Matlab 中使用 Java 泛型类

是否可以在Matlab中构建参数化类?例如在Java中我可以说ArrayListmyList=newArrayList().我试过myList=java.util.ArrayList(),但这只是给出了一个错误,说“意外的括号或括号”。我真的很想使用我自己的参数化类,但如果我能得到它的语法,就足够了。 最佳答案 您不能在Matlab中实例化参数化的Java类。这是因为Matlab是一种解释型语言。因此,在您的示例中,当您尝试myList=java.util.ArrayList()此代码立即由Matlab解释和运行(并编译Java代码

java - List<E>.contains(Object),为什么?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethereasonswhyMap.get(Objectkey)isnot(fully)genericWhydowehavecontains(Objecto)insteadofcontains(Ee)?如大家所见here,E类型的模板化java.util.List有它的contains方法未模板化:它需要一个Object反而。有谁知道为什么?在什么情况下List在myList.contains(newOtherNonString())中返回真?如果我没记错的话,永远不会,除非与之比较的对象具有类型

java - 泛型接口(interface)方法签名 "incorrect"

我很难想出这个标题,所以请原谅我。我有一个具有以下方法的接口(interface):publicinterfaceAlgorithm{publicSet>map(intnumPartitions);publicFreduce(Set>partitions);}和一个实现Algorithm的类使用以下方法:publicclassLinearSearchimplementsAlgorithm,Integer>{@OverridepublicSet>map(intnumPartitions){returnnull;}@OverridepublicIntegerreduce(Set>parti

java - 使用java中包含对象的属性获取arraylist的索引

这个问题在这里已经有了答案:SearchinginaArrayListwithcustomobjectsforcertainstrings(9个回答)关闭8年前。我有一个对象类型列表。因为我有一个String属性idNum。现在我想通过传递idNum来获取列表中对象的索引。ListobjList=newArrayList();不知道怎么给objList.indexOf(//不知道怎么给这里);是否可以在不迭代列表的情况下执行此操作。我只想使用indexOf()方法。