示例:Listlist=newArrayList();//Thiswouldgivemetheclassnameforthelistreferencevariable.list.getClass().getSimpleName();我想从list引用变量中获取接口(interface)名称。有什么办法可以做到这一点吗? 最佳答案 使用反射你可以调用Class.getInterfaces()返回您的类实现的ArrayofInterfaces的方法。list.getClass().getInterfaces()[0];只得到名字list
学习java8默认方法。这link就像互联网上的任何其他资源一样In‘thestrictestsense’,Defaultmethodsareastepbackwardsbecausetheyallowyouto‘pollute’yourinterfaceswithcode.Buttheyprovidethemostelegantandpracticalwaytoallowbackwardscompatibility.ItmadeitmucheasierforOracletoupdatealltheCollectionsclassesandforyoutoretrofityourexi
什么是超接口(interface)是java?super接口(interface)的用途是什么? 最佳答案 这是一个例子:publicinterfaceA{voiddoSomething();}publicinterfaceBextendsA{voiddoSomethingElse();}在这个例子中,A是B的super接口(interface).这就像是一个父类(superclass)。任何实现B的类现在还实现了A自动执行,并且必须同时提供doSomething()的实现和doSomethingElse().
下面我有一个通用的OuterClass,一个使用OuterClass泛型的InnerClass和非通用内部接口(interface)。publicclassOuterClass{publicclassInnerClass{publicEsomeMethod(){returnnull;}}publicinterfaceInnerInterface{publicvoidonEvent(OuterClass.InnerClassinnerClass);}}在下面的主要方法中,我使用了OuterClass的两个实例,o1参数化为,o2参数化为。我的匿名内部类myListener尝试使用外部类(
我最近看了一本书《TheJavaTutorials》第三版。如图所示,它讲的是内部类实现。在第3段中,它说“Stack类本身不应实现Iterator接口(interface),因为...”。我找不到Stack类不应该实现Iterator的任何理由。给出的原因并不普遍。你能解释一下吗? 最佳答案 从根本上说,迭代器是有状态的-它需要知道它在集合中指向的何处。这不属于集合本身的一部分——给出的解释是正确的……完全有可能有两个独立的迭代器对象,迭代同一个集合对象。如果集合本身实现了Iterator接口(interface),您将如何建模?
我有一个接口(interface),我希望每个实现这个接口(interface)的人都实现一个重写的“equals”方法。有没有办法确保发生这种情况?我猜这会发生的方式是实现我的接口(interface)的类将自动从Object获取equals,从而使接口(interface)快乐。 最佳答案 不行,你只能创建一个抽象类而不是像这样的接口(interface):publicabstractclassMyApi{publicfinalbooleanequals(Objectother){if(other==this){returntr
我有如下界面:packageexample;importjava.awt.Point;publicinterfaceThing{publicenumMovingState{MOVING_LEFT,MOVING_UP,MOVING_RIGHT,MOVING_DOWN}publicvoidsetNewPosition(MovingStatestate);publicPointgetPosition();}和一个实现类:packageexample;importjava.awt.Point;publicclassThingImplimplementsThing{publicenumMovin
有了新的javalambdas和函数式接口(interface)的概念,是否可以将这些函数式接口(interface)视为方法?interfaceFunc{voidexecute(inti);}voidcall(Funcf){f(1);//insteadoff.execute(1);}我找到了很多关于实际lambda表达式语法的信息,但没有关于这个的信息。 最佳答案 你的提议你的建议之前已经在lambda-dev邮件列表中讨论过了:http://mail.openjdk.java.net/pipermail/lambda-dev/2
我想在我的应用程序中使用EL。但我找不到任何方法。我通常最终需要一些我没有实现的接口(interface)。我有一个对象映射,我想要一个像Hello,${person.name}这样的字符串表达式被评估为一个字符串。我如何使用CommonsEL、javax.el、OGNL等实现这一点?必须是一个独立的库。我知道Java:usingELoutsideJ2EE,并看过JSTL/JSPEL(ExpressionLanguage)inanonJSP(standalone)context.这不是我要找的。我正在寻找的是要添加的依赖项的示例,然后是如何初始化将具有的解析器:privatestati
Java-8允许在接口(interface)内部定义静态方法,但是restricts它仅通过接口(interface)名称调用:9.4:Aninterfacecandeclarestaticmethods,whichareinvokedwithoutreferencetoaparticularobject.例如:interfaceX{staticvoidy(){}}...Xx=newX(){};x.y();导致错误:error:illegalstaticinterfacemethodcallx.y();^thereceiverexpressionshouldbereplacedwith