草庐IT

multiple-interface-implem

全部标签

java - 抽象类和接口(interface)在一起?

我有一段代码,其中一些类正在实现一个接口(interface)。感觉正确,但是子类之间有一点重复-即3个方法。所以这是在尖叫着使用抽象类。我的问题是,在以下情况下同时使用抽象类和接口(interface)是否有任何缺点:实现接口(interface)的抽象类和扩展抽象类的子类子类扩展抽象类并实现接口(interface)或者抽象类和接口(interface)不应该像这样一起使用吗? 最佳答案 这两个一起使用是完全正常的。例如考虑AbstractList(实现List)和AbstractMap(在JDK中实现Map)。我本能的reac

java - 模拟返回 Page 接口(interface)的方法

我有一个方法需要编写单元测试用例。该方法返回一个Page类型。如何模拟这个方法?方法:publicPagefindAllCompany(finalPageablepageable){returncompanyRepository.findAllByIsActiveTrue(pageable);}感谢帮助 最佳答案 您可以使用Mock响应或实际响应,然后使用when,例如:Pagecompanies=Mockito.mock(Page.class);Mockito.when(companyRepository.findAllByIsA

java - 如何在java中包装类并保存接口(interface)?

我有这样的类(class):MyClassextendsMyAbstractClassimplementmyInterface1,myInterface2,...我需要创建带有附加字段的新类:MyType1field1;MyType2field2;.......似乎正确创建将包装MyClass的新类,如下所示:MyWrapClass{MyClassmyClass=newMyClass(...);MyType1field1;MyType2field2;.....但是MyWrapClass用作myInterface1或myInterface2类型!所以问题是:我是否应该在MyWrapCla

Java 抽象类和接口(interface)

这个问题在这里已经有了答案:AbstractclassvsInterfaceinJava(15个答案)关闭5年前。在采访中我被问到以下问题。我试图回答这个问题,但我想要问题的确切答案。如果我能把抽象类模拟成接口(interface),java为什么要提供接口(interface)?这意味着如果在抽象类中我可以将所有方法标记为抽象,然后抽象类将作为接口(interface)工作,那么为什么我需要接口(interface)。谁能给我简单解释一下。

java - 如何使用比较器接口(interface)

我是Java的新手,我不太了解如何使用比较器接口(interface)。我在Inventory类和Item类中有一个包含Item的ArrayList。在Item类中我写了:publicclassItemimplementsComparator{//stuff...@Overridepublicintcompare(Itema,Itemb){if(a.getID().compareToIgnoreCase(b.getID())>0)return1;elseif(a.getID().compareToIgnoreCase(b.getID())getID()方法只提供id,我必须使用它来按字

Java 代码风格——接口(interface)与抽象类

我的一位新合作者正在审查我编写的一些代码,她告诉我她不习惯看到直接在Java代码中使用的接口(interface),例如:publicinterfaceGeneralFoo{...}publicclassSpecificFooimplementsGeneralFoo{...}publicclassUsesFoo{GeneralFoofoo=newSpecificFoo();}相反,期待看到publicinterfaceGeneralFoo{...}publicabstractclassAbstractFooimplementsGeneralFoo{...}publicclassSpec

java - 协议(protocol) : How to generate multiple Java source files?

编译大型Protobuf定义后,我得到一个6MB的Java源代码文件。因为它的大小,当我在Eclipse中开发时,使用该文件是一个很大的痛苦,每当我打开该文件时,Eclipse就会完全停止/崩溃。有没有办法让protoc生成多个Java源代码文件而不是一个大文件? 最佳答案 其实是有的。它没有记录,但您可以像这样在.proto文件中添加一行:optionjava_multiple_files=true;这会将来自.proto文件的每个顶级消息类型放入一个独立的.java文件中。请注意,您当然必须更新所有代码才能从新位置导入这些类。还

java - instanceof 产生不一致的结果来检测接口(interface)?

关于instanceof有什么我应该知道的棘手的事情吗?我通过一些方法传递一个对象列表,并测试这些对象是否使用instanceof实现特定接口(interface)。在某些情况下,instanceof正确地将对象标识为实现接口(interface),而在其他情况下则不然。它似乎在不同地方的同一对象上给我不一致的结果。这里有什么我应该注意的技巧/陷阱吗?期待您的评论:1)我知道instanceof是错误的形式。我正在处理一个无法更改的不太完美的对象层次结构,这是我能想到的最不坏的事情。2)我正在努力创建一个代码示例,但如果我要在此处粘贴任何有用的内容,我将需要大量简化我的代码。同时,如果

c# - 实现接口(interface)的开销

我的一位同事告诉我,实现接口(interface)会引入开销。这是真的吗?我不关心微优化;我只想知道这需要更深入的细节。 最佳答案 忍不住测试了一下,貌似几乎没有开销。参与者是:InterfaceIFoodefiningamethodclassFoo:IFooimplementsIFooclassBarimplementsthesamemethodasFoo,butnointerfaceinvolved所以我定义了Foorealfoo=newFoo();IFooifoo=newFoo();Barbar=newBar();并调用该方法

java - 实现类只有一个,为什么要用接口(interface)?

我是编程新手,正在学习Java。我只是想知道为什么只有一个实现类时要使用接口(interface)? 最佳答案 您这样做是为了防止其他人访问您的实现类型。例如,您可以将您的实现类型隐藏在一个库中,为该类型提供包访问权限,并将您的接口(interface)实例返回给您的库的用户://Thisiswhattheusersofyourlibraryknowabouttheclass//thatdoesthework:publicinterfaceSomeInterface{voiddoSomethingUseful();voiddoSom