草庐IT

Generics

全部标签

java - hashmap 中的 <K, V> 是什么,我如何在我自己的类中使用它?

这个问题在这里已经有了答案:WhatdomeansuchasimplementsComparable?(2个答案)GenericsinJava[closed](5个答案)关闭9年前。我一直试图简单地为声明的部分取一个名字,但没有成功。谁能告诉我它叫什么,我如何在自己的类里面使用它?例如,我可能想尝试制作自己的Collection,并使用newMyThing例如。感谢任何帮助,谢谢!

java - 泛型类和列表的奇怪编译错误

因此,在使用具有List(或Map或Set等)作为属性的泛型类时,我遇到了一个奇怪的编译错误。尝试迭代(使用foreach)列表时出现编译错误:Sample.java:11:error:incompatibletypesfor(Stringstring:s.getStringList()){required:Stringfound:Object明确一点,我知道这个问题有一个简单的解决方法,但我想了解代码有什么问题以下是我创建的示例:importjava.util.List;publicclassSample{publicListstringList;publicstaticvoidma

Java 未经检查的重写返回类型

我有一个包含以下组件的项目:publicabstractclassBaseThing{publicabstractThingDoergetThingDoer();}publicclassSomeThingextendsBaseThing{publicThingDoergetThingDoer(){returnThings.getSomeThingDoer();}}publicclassSomeOtherThingextendsBaseThing{publicThingDoergetThingDoer(){returnThings.getSomeOtherThingDoer();}}pu

java - T...(泛型可变参数)真的在编译时被剥离为 Object[] 吗?

(我将在这里使用T来指代通用参数,用于参数化类。)我读到T...用作参数时是堆污染的潜在来源的原因是编译器对正常情况(没有T[]arraysallowed)规则,并允许T...(这是可变参数,因此通常会通过可变参数规则在内部转换为T[],除了这在泛型中是不允许的)作为参数通过在内部实现它就像它是原始类型一样,而是将其转换为Object[]的数组。所以我写了一些代码来验证这一点,将这个概念牢记在心。我将T...t作为方法的参数,然后System.out.println得到t.getClass[]。我希望得到Object[]的类,但我得到的是T[]的类。因此,编译器似乎在内部将T...t转

java - Java 中的泛型类型删除

代码如下:publicclassMain{publicstaticvoidmain(String[]args){Geng=newGen(5);System.out.println(g.getClass());System.out.println(g.ob.getClass());}}classGen{Tob;publicGen(Tx){ob=x;}}这是输出classGen//ThisIunderstandclassjava.lang.Integer//Butiftypeerasureishappening,shouldn'tthisbejava.lang.Object?我知道类型参数

Java - 一种采用可变参数并返回数组列表的方法?

我对泛型不是很满意,因此还没有找到解决方案。我有这三种方法:publicstaticListobjectAAsList(ObjectA...items){returnnewArrayList(Arrays.asList(items));}publicstaticListobjectBAsList(ObjectB...items){returnnewArrayList(Arrays.asList(items));}publicstaticListobjectCAsList(ObjectC...items){returnnewArrayList(Arrays.asList(items));

java - 如何定义构建器模式层次结构,其中可以按任何顺序调用 setter

考虑带有抽象生成器的抽象数据类:abstractclassData{abstractstaticclassBuilder{privateStringone;protectedBuilder(){this.one=null;}publicfinalBuilderwithOne(finalStringvalue){this.one=value;returnthis;}protectedabstractTbuild();}privatefinalStringone;protectedData(finalBuilderbuilder){this.one=builder.one;}publicf

Java 集合 : Pass collection of children as collection of parents

假设我有一个接口(interface)和一些类:publicinterfaceIPanel{publicvoidaddComponents(Setcomponents);publicComponentTypecreate();}publicclassButtonextendsComponent{}publicclassLocalizedButtonextendsButton{}publicclassButtonsPanelimplementsIPanel{publicvoidaddComponents(Setcomponents){.../*usescreate()*/;}public

java - 获取通用类类型

您好,在Java中有什么方法可以获取静态泛型类类型吗我已经结束了构造Listl=newArrayList();Class>c=(Class>)l.getClass();我想知道,是否存在这样的东西:Classc=List.class;(我真的不想构造新对象只是为了获取它的类型)谢谢 最佳答案 因为所有List类在运行时实际上对应于同一个类,你可以这样做:Class>c=(Class>)List.class;但出于某种原因,Java不喜欢它。用字符串试了一下:Laj.java:9:inconvertibletypesfound:jav

java - Java 中 <?> 标记的含义是什么?

是什么意思?此代码中的token是从www.JavaPractices.com复制的吗?当我用看起来更传统的替换它时用于泛型类型,它无法编译。(错误:T无法解析为类型。)为什么?//occurs3timesintheentireprogram.Whenitisreplacedwiththe//programnolongercompiles.voidactivateAlarmThenStop(){RunnablemyPeriodicTask=newPeriodicTask();ScheduledFuturesoundAlarmFuture=this.executorService.sch