草庐IT

Interface1

全部标签

java - 父类(super class)方法和接口(interface)默认方法冲突解决

考虑下面的例子,publicclassTestingextendsSupClsimplementsIntf{publicstaticvoidmain(String[]args){newTesting().test();}}classSupCls{publicvoidtest(){System.out.println("FromSupCls");}}interfaceIntf{publicdefaultvoidtest(){System.out.println("FromIntf");}}如您所见,SupCls类和Intf接口(interface)之间没有任何联系。但两者都定义一种通用方

java - 在比较器接口(interface)中使用 equals() 方法?

equals()方法可用于Object类中的所有java集合类。Comparator接口(interface)中也声明了这个方法,那么在Comparator中声明这个方法的目的是什么?在什么情况下使用它以及如何使用它? 最佳答案 whatisthepurposeofdeclaringthismethodinComparator?我认为这是设计者强调Comparator.equals()强加一些additionalrequirements事实的方式。在任何实现该接口(interface)的类上:Additionally,thismet

java - Callable<Void> 作为功能接口(interface)与 lambdas

我只是在学习新的java8特性。这是我的问题:为什么不允许使用Callable作为lambda表达式的功能接口(interface)?(编译器提示返回值)而且使用Callable仍然是完全合法的那里。这是示例代码:publicclassTest{publicstaticvoidmain(String[]args)throwsException{//worksfinetestInt(()->{System.out.println("FromtestIntmethod");return1;});testVoid(()->{System.out.println("FromtestVoidme

java - 确定类的扩展接口(interface)

我需要确定表示接口(interface)的Class对象是否扩展了另一个接口(interface),即:packagea.b.c.d;publicInterfaceIMyInterfaceextendsa.b.d.c.ISomeOtherInterface{}根据thespecClass.getSuperClass()将为接口(interface)返回null。IfthisClassrepresentseithertheObjectclass,aninterface,aprimitivetype,orvoid,thennullisreturned.因此以下将不起作用。Classinte

Java - 如何检查一个类是否继承自某个类或接口(interface)?

我需要检查:publicstaticbooleancheck(Classc,Classd){if(/*cinheritsfromd*/)returntrue;elsereturnfalse;}我该怎么做?没有c.newInstance()有可能吗?第一次看错标题了。现在是正确的。 最佳答案 使用isAssignableFromif(d.isAssignableFrom(c)){//thendisasuperclassofc//inotherwords,cinheritsd}Determinesiftheclassorinterfac

java - 在Java中,有没有办法指定一个参数实现两个接口(interface)

我很想使用jGraphT编写此类代码/*interfaceDirectedGraph{...}interfaceWeightedGraph{...}*/publicclassSteinerTreeCalc{publicSteinerTreeCalc(,WeightedGraph>graph){......}}我想创建一个构造函数来请求一个实现两个接口(interface)的对象。更新:在我的目标中,已经为顶点和边(V和E)选择了类,但非常感谢想出的人:publicclassSteinerTreeCalc&WeightedGraph>{....} 最佳答案

java - 为什么所有的接口(interface)方法都需要在java实现它的类中实现

我知道这是接口(interface)的目的,可以将类声明为抽象类以逃避它。但是实现我们在接口(interface)中声明的所有方法有什么用吗?如果我们继续定义所有方法,即使它与该类无关,这不会增加代码的重量和复杂性吗?为什么会这样设计? 最佳答案 Java中接口(interface)的概念非常像一个契约(Contract)(也许回想起来这应该是这个概念的名称)这个想法是实现接口(interface)的类郑重promise提供契约(Contract)中列出的所有东西,以便任何使用实现接口(interface)的类保证具有可用的功能。根

java - 无法推断功能接口(interface)类型 Java 8

我有一个初始化类的工厂(RegistryDP):publicclassGenericFactoryextendsAbstractFactory{publicGenericPostProcessorFactory(){factory.put("Test",defaultSupplier(()->newTest()));factory.put("TestWithArgs",defaultSupplier(()->newTestWithArgs(2,4)));}}interfaceValidationTestimplementsValidationTestWithArgsimplements

java - 如何从 Scala 调用 Java 接口(interface)的 T eq(Object) 方法?

Scala定义了一个AnyRef类,它在编译后被解释为Java的Object类。然而,从语言的角度来看,AnyRef类并不完全等同于Object,因为它引入了几个新方法,例如eq(),它接受AnyRef并返回Boolean并比较引用的身份如果Java中有一个类本身定义了具有不同结果类型的eq()方法,并且该类实现的接口(interface)也具有此方法:publicinterfaceI{Stringeq(Objectthat);}publicclassAimplementsI{publicStringeq(Objectthat){return"";}}如果通过接口(interface)

Java 8 默认方法接口(interface)覆盖对象等于方法

这个问题在这里已经有了答案:Java8:Whyisitforbiddentodefineadefaultmethodforamethodfromjava.lang.Object(5个答案)关闭7年前。publicinterfaceTable{@Overrridedefaultbooleanequals(Objectother){//dosomethingandreturntrue/false}}为什么上面的代码会出现“java:defaultmethodequalsininterfaceTableoverridesamemberofjava.lang.Object”的编译错误?我们不能