如果我有一个需要实现接口(interface)的类,但该接口(interface)上的一个或多个方法在这个特定类的上下文中没有意义,我应该怎么办?例如,假设我正在实现一个适配器模式,我想在其中创建一个实现java.util.Map的包装类通过包装一些不可变对象(immutable对象)并将其数据公开为键/值对。在这种情况下,方法put和putAll没有意义,因为我无法修改底层对象。那么问题是这些方法应该做什么? 最佳答案 任何不能根据接口(interface)语义实现的方法都应该抛出UnsupportedOperationExcep
接口(interface)由抽象方法和最终变量组成。好吧,它被用作提出的通用契约,因此实现它的类应该通过在其中实现方法来遵循规则。这是Java接口(interface)的唯一用途/范围吗?他们是否为此引入了接口(interface)的概念,还是我遗漏了什么?请通过示例帮助我理解接口(interface)的使用。(不是关于如何使用或创建接口(interface),而是展示它们如何帮助程序员)。谢谢。 最佳答案 这是我第一次阅读它们时了解它们用法的地方:Saythatyoureceiveaportablediscplayerasagif
我有一个接口(interface)。publicinterfaceModule{voidinit();voidactions();}当我尝试创建这样的数组时会发生什么?Module[]instances=newModule[20]如何实现这个数组? 最佳答案 是的,这是可能的。您需要用Module类型的对象填充数组的字段instances[0]=newMyModule();而MyModule是一个实现了Module接口(interface)的类。或者你可以使用匿名内部类:instances[0]=newModule(){public
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我有一个接口(interface)A,它有方法x、y和z。我是这样评论类(class)的:/****A.java*Interfaceclassthathasthefollowingmethods.**@authorMyName*@sincemm-dd-yyyy*/publicinterfaceA{//methoddescriptionforxvoidx();//methoddescript
一位同事问我有关JavaAPI中的Throwable类的问题。按照标准,我明白,每个以*able结尾的词都是JavaAPI中的一个接口(interface)。关于使用诸如接口(interface)名称之类的词有一个行业标准。因此,我不知不觉地告诉他这是Java世界中所有异常和错误类型的基本接口(interface)。然后他向我展示了该类(class)的java文件。我的问题:为什么java人选择这个名字作为一个类。我想这应该是默认的接口(interface)吧?这是使用*able词作为接口(interface)的模式吗?还有其他以*able结尾的类的例子吗?问候。
界面如下:importjavax.xml.ws.Action;publicinterfaceAnnotationsTestInterface{@ActionpublicvoidannotatedMethod();}还有一个实现类:publicclassImplimplementsAnnotationsTestInterface{}此时Eclipse要求我添加未实现的方法(我选择这个)或使类抽象。添加后类如下所示:importjavax.xml.ws.Action;publicclassImplimplementsAnnotationsTestInterface{@Override@Ac
我有以下无法从Map检索值的测试用例:packagetests;importjava.util.HashMap;importjava.util.Map;publicclassClassTest{interfaceA{}interfaceBextendsA{}interfaceCextendsA{}classDimplementsB{}classEimplementsC{}publicClassTest(){Map,A>map=newHashMap();Ad=newD();Ae=newE();map.put(d.getClass(),d);map.put(e.getClass(),e);
我正在尝试运行我已经在各种条件下成功运行了几个月的东西。我在运行Java7的Java应用程序中使用akka-actor_2.112.3.4和scala-library2.11.7。就像我说的,相同的代码已经工作了几个月。在最近的情况下,我得到以下信息:java.lang.ClassCastException:interfaceakka.actor.Schedulerisnotassignablefromclassakka.actor.LightArrayRevolverScheduleratakka.actor.ReflectiveDynamicAccess$$anonfun$getC
我正在编写一个模拟器,它有几个接口(interface),所有模拟对象都实现了这些接口(interface)。Entity接口(interface)具有所有对象都必须具有的方法,例如ID检索和推进对象状态的时间步长。Collidable扩展了Entity,并表示在运行碰撞检测算法时应考虑的具有体积和位置的任何东西。Field扩展了Entity,并表示将位置映射到值的任何内容;这些用于模拟磁场之类的事物,这些事物遍及世界但没有体积或物理形式。RigidBody是一个实现Collidable并提供刚体动力学算法的类。我有一个World类,它管理所有Entities并具有推进模拟器时钟和划分
我从这里导入了jfreechart-fse:https://github.com/jfree/jfreechart-fse我已经将它作为Maven项目导入到Eclipse中。在那之后,我遇到了很多问题,例如在org.jfree.chartpaskage的类ChartPanel中,eclipse没有看到“实现”部分,请注意@OverridepublicvoidactionPerformed(ActionEventevent){...}作为一个问题。在许多其他情况下也是如此。你能说出这有什么问题吗? 最佳答案 将java版本更改为1.7