草庐IT

Generics

全部标签

java - 泛型方法的返回类型(Java)

我有这个通用函数:publicstaticTsum(Listlist){Numbertot=0;for(Numbern:list){tot=tot.doubleValue()+n.doubleValue();}return(T)tot;}使用以下代码从主函数中调用:publicstaticvoidmain(String[]args){ArrayListlistInt=newArrayList();listInt.add(3);listInt.add(5);listInt.add(6);listInt.add(8);System.err.println("Sum:"+Calcolatri

java - 确保通用 lambda 表达式的类型安全

这是对Java8retrievinglambdasetterfromclass的跟进.我正在尝试获取给定字段的getter方法publicIGettergetGetter(Classclazz,Fieldfield){ClassfieldType=null;try{fieldType=(Class)field.getType();}catch(ClassCastExceptione){error("Attemptedtocreateamistypedgetterforthefield"+field+"!");}returngetGetter(clazz,field.getName(),

java - 在 Java 8 中实现 Monad

我正在尝试在thisarticle之后在Java8中实现一个Monad接口(interface)但是我有以下编译错误发现2个错误:File:FunctorsMonads.java[line:36]Error:FOptionalisnotabstractanddoesnotoverrideabstractmethodflatMap(java.util.function.Function>)inMonadFile:FunctorsMonads.java[line:50]Error:nameclash:flatMap(java.util.function.Function>)inFOptio

java - 显式类型参数可以冗余吗?

我有一个带有类型参数的类。classMyObject{@Setter@GetterprivateIdTypeid;}我想我可以添加一些方便的方法,所以我就这么做了。>voidcopyIdTo(Tobject){object.setId(getId());}>voidcopyIdFrom(Tobject){object.copyIdTo(this);}我刚刚意识到我可以做到这一点。voidcopyIdTo(MyObjectobject){object.setId(getId());}voidcopyIdFrom(MyObjectobject){object.copyIdTo(this);

java - 使用泛型转换为内部类

考虑以下代码:publicclassOuter{publicclassInner{}publicstaticOuter.Innerget(){Objecto=newObject();return(Outer.Inner)o;}publicstaticvoidmain(String[]args)throwsException{Outer.get();}}此代码在Eclipse中编译成功,但在javac中编译失败:Outer.java:10:')'expectedreturn(Outer.Inner)o;^Outer.java:10:';'expectedreturn(Outer.Inne

java - 我可以使这个 java pluck() 方法更安全吗?

我写了这个效用函数:publicstaticListpluck(StringfieldName,Listlist)throwsNoSuchFieldException,IllegalAccessException{if(list.isEmpty()){returnnewArrayList();}Classc=list.get(0).getClass();Fieldf=c.getField(fieldName);ArrayListresult=Lists.newArrayList();for(Objectobject:list){result.add((T)f.get(object));

Java 泛型和注解 : Type-Safe

我知道我可以做类似的事情:publicclassAbstractDao{}在这种情况下,Bean是一个类或接口(interface)。我想知道是否有办法用注释来做到这一点,比如:publicclassAbstractDao{}这样的事情可能吗?提前致谢! 最佳答案 不幸的是,注解中没有继承,所以这是不可能的。在这里查看类似问题的答案:WhyisnotpossibletoextendannotationsinJava? 关于Java泛型和注解:Type-Safe,我们在StackOverf

java - 泛型 Java 和类型参数的阴影

这段代码似乎工作正常classRule{publicRule(Tt){}publicvoidFoo(Tt){}}方法类型参数是否影响类类型参数?另外,当您创建一个对象时,它是否使用类的类型参数?例子Ruler=newRule();这是否通常适用于类的类型参数,在它们不冲突的情况下?我的意思是只有类有类型参数,而构造函数没有,或者这看起来对于构造函数中的类型参数?如果他们发生冲突,这会发生什么变化?参见下面的讨论如果我有一个函数调用x=method();//thisisasyntaxerroreveninsidethefunctionorclass;Imustplaceathisbefo

Java 泛型传递 .class 引用

我需要调用一个super构造函数,它需要我传递一个泛型类型的.class引用。我如何使用Java实现这一点?构造函数想要..Class>由于泛型在运行时被删除,我不知道如何满足构造函数。List.class//doesnotwork;-) 最佳答案 像这样(首先转换为Class原始类型):@SuppressWarnings({"unchecked","rawtypes"})Class>clazz=(Class)List.class 关于Java泛型传递.class引用,我们在StackO

带有泛型的 Java 枚举值

我需要这样的东西:publicenumEnum{ENUM1(Class1.class,"ADESCRIPTION",newClass1()),ENUM2(Class2.class,"ADESCRIPTION",newClass2()),ENUM3(Class3.class,"ADESCRIPTION",newClass3());privateEnum(Classclazz,Stringdescription,Objectinstance){}}我需要:我定义所有ClassX的不同实例的一个地方(它们扩展了相同的ClassSuper)。当然,我可以为每个ClassX定义不同的枚举,但这并