草庐IT

外参数

全部标签

java - Vert.x java List<Futures> 参数化

前几天我遇到了一个关于Vert.xfutures的奇怪问题,它没有破坏代码,但仍然困扰着我。没有参数的Future会导致以下警告:Futureisarawtype.ReferencestogenerictypeFutureshouldbeparameterized添加参数,问题解决:Futurefuture=...当处理一个futures列表时,你也可以参数化它就好了:List>future=...但是CompositeFuture.all()似乎无法处理参数化列表并强制您删除参数。有什么方法可以使参数化的future列表与CompositeFuture一起使用,还是我们只需要忽略该警

java - 如何获取间接实现的泛型接口(interface)的实际类型参数?

我有一个以多种不同方式实现的参数化接口(interface)。在运行时,我需要弄清楚,给定一个实现该接口(interface)的任意对象,该接口(interface)的实际类型参数是什么。这里有一个片段来说明这个问题,并尝试解决它(alsoonideone.com):importjava.util.*;importjava.lang.reflect.*;interfaceAwesome{}classBaseimplementsAwesome>{}classChildextendsBase>{}classAwesomeExample{publicstaticvoidmain(String

java - 一种将参数传递给方法的奇怪方式

我正在浏览ExchangeWebServicesJavaAPI代码并看到了开发人员将参数传递给他们的方法的设计选择。能否帮助解释该技术的好处--方法要处理的类型在传递给方法之前由通用包装类包装,例如,如果方法要处理字符串,则将newParam()传递给Param所在的方法定义如下classParam{privateTparam;publicTgetParam(){returnparam;}publicvoidsetParam(Tparam){this.param=param}}这是来自源代码的片段——该方法适用于HttpWebRequest对象。调用者创建Param的实例,即受Http

java - 如何确保仅协变地使用类型参数?

假设我有一个通用接口(interface)Source这是T的纯生产商对象。作为一个纯粹的生产者是接口(interface)契约的一部分。所以itisareasonableexpectation无论你能用Source做什么,如果你有Source也应该可以做到.现在我需要在Source的正文中强制执行此限制,这样就不会有人不小心使用了T以一种与该契约(Contract)相矛盾的方式。来自JDK的示例正如@Miserable.Variable指出的那样,ArrayList和ArrayList不等价。那是因为ArrayList作为通用类型不是协变的。或者换句话说,ArrayList不是T的纯

java - 回调作为 C 结构的参数 - Java 包装器生成

感谢@flexo,当自由函数作为参数传递给另一个函数时,我对简单回调没有任何问题。.但假设更难的C接口(interface):typedefstruct{intid;constchar*name;}Item;typedefstruct{intvalue;Items_Callbackcallback;void*context;}Items_Call;typedefint(*Items_Callback)(constItem*item,void*context);intItems_create(constItem*item,Items_Call*call){...call->callbac

java - 如何创建自定义 java 注释以记录方法参数

我正在编写JavaEE应用程序,我想使用和创建自定义注释,它将在调用注释方法时记录数据。我想做的就是,当调用带注释的方法时,代码遍历所有传递的方法参数并写入标准输出参数键和值。一些例子:publicclassTest{@LogMethodDatapublicintsum(intfirst,intsecond){returnfirst+second;}}我想实现的是,当自定义方法将用@LogMethodData注释时,后面的代码将注意并将传递的方法参数记录到标准输出(类似于“方法数据:第一个-4,第二个-5”如果第一个参数包含值4,第二个参数包含值5),则与传递给方法的参数数量无关。如果

java - 在 Maven exec 插件参数中使用通配符

我正在做的项目需要使用GoogleProtobuf进行序列化,因此在构建我的代码之前必须生成一些stub。我使用的命令行参数是:protoc-I=src/proto--java_out=src/main/javasrc/proto/*.proto这在控制台中运行良好。我现在想使用Mavenexec插件,以便这个手动过程成为Maven构建的一部分。我使用的pom部分是:exec-maven-pluginorg.codehaus.mojo1.3.2GoogleProtobufStubGenerationgenerate-sourcesexecprotoc-I=src/proto--java

java - 如何使用 Hibernate Validator 验证重写的方法参数?

关于thisdoc我知道如果我的GroupService实现了GroupManager并覆盖了它的方法,那么我就无法使用验证约束进行注释,因为HibernateValidator不允许它(结果被称为Liskovsubstitutionprinciple)。我的意思是做类似的事情publicclassGroupServiceimplementsGroupManager{@OverridepublicListfindUsersInGroup(@NotNullStringgroupName){...}}然后将引发ConstraintDeclarationException,对吧?所以解决方案

java - 如何推断类型,其中返回类型也是方法参数的上限和下限

假设我们有以下代码:classA{}classBextendsA{}classCextendsB{}publicstaticTtestMe(Listlist1,Listlist2){returnnull;}publicstaticvoidmain(String[]args){ListlistB=newArrayList();ListlistC=newArrayList();//Allthreevariantsarepossible:Aa=testMe(listB,listC);Bb=testMe(listB,listC);Cc=testMe(listB,listC);}问题是关于pub

java - 为什么在使用带有原始类型和包装类的可变参数重载时会出现不明确的错误?

这个问题在这里已经有了答案:Ambiguousvarargsmethods(4个答案)关闭6年前。我不明白为什么在案例1中,它没有给出编译错误,相反在案例2(可变参数)中,它给出了编译错误。谁能详细说明编译器在这两种情况下有什么区别?我浏览了很多关于它的帖子,但还无法理解。案例#1publicclassTest{publicvoiddisplay(inta){System.out.println("1");}publicvoiddisplay(Integera){System.out.println("2");}publicstaticvoidmain(String[]args){ne