草庐IT

b-Class-Interface

全部标签

java - 在 Jar 中查找实现接口(interface)的类

我想查找jar中的类是否实现了特定的接口(interface)。我已经实现了下面的代码,但是它遍历了jar文件中的所有类,并在每个类上查找它是否实现了这个特定的接口(interface)。publicstaticsynchronizedbooleanfindClassesInJar(finalClassbaseInterface,finalStringjarName){finalListclassesTobeReturned=newArrayList();if(!StringUtils.isBlank(jarName)){//jarNameisrelativelocationofjar

Java 8 : When the use of Interface static methods becomes a bad practice?

从Java8开始,我们可以在接口(interface)中使用默认方法和静态方法。常量接口(interface)模式是对接口(interface)的不良使用,称为常量接口(interface)反模式。>EffectiveJava,第17项:Theconstantinterfacepatternisapooruseofinterfaces.Thataclassusessomeconstantsinternallyisanimplementationdetail.Implementingaconstantinterfacecausesthisimplementationdetailtolea

Java : Class inheriting self

我知道这毫无意义:我只是觉得这很有趣,我想进一步了解当您创建一个继承自身的类时会发生什么,导致堆栈溢出崩溃的机制。令人惊奇的是,Java允许您从一开始就构建这样的结构。我只是在猜测,但是JVM是将自己置于一个无限循环中,试图在实例化它之前解析该类,还是它实际上是在无休止地实例化该类的多个副本?我应该更具体一些;我正在使用内部类派生自封闭类。publicclassOutside{privateintoutsideValue;publicclassInsideextendsOutside{privateintinsideValue;publicInside(intval){insideVa

java - Spring ApplicationContext.getBean(Class c) 不适用于代理类

我需要通过类类型查找bean。当beans被代理包装时(一些方法是@Transactional)——ApplicatoinContext找不到它们。我发现如果我通过接口(interface)查找它们,它就可以工作,但在这种情况下,我使用的是具体类类型。我知道这个bean是我正在寻找的类型,但是getBean()方法失败了。我可以调试(并修复)Spring的AbstractBeanFactory代码中的问题。问题是它根据我请求的类型检查beanInstance的类型,但beanInstance.getClass()是一个代理。AbstractBeanFactory应该对此进行补偿并将类型

java - 迭代器接口(interface)

我有一个大学作业,要求我实现一个实现Iterator接口(interface)的内部类。迭代器在单链表父类(superclass)上工作。目前我的内部类是这样的:privateclassListIteratorimplementsIterator{Nodetemp;booleannextCalled=false;ListIterator(Nodefo){this.temp=fo;}@OverridepublicbooleanhasNext(){if(temp!=null){returntrue;}returnfalse;}@OverridepublicVnext(){nextCalle

java - 为什么为继承而设计的类应该很少实现 Serializble 接口(interface)?

根据EffectiveJava:ClassesdesignedforinheritanceshouldrarelyimplementSerializable,andinterfacesshouldrarelyextendit.这种说法背后的原因是什么?换句话说,如果他们实现Serializable接口(interface)会出现什么问题? 最佳答案 同一项的下一句是这样说的:Classesdesignedforinheritance(Item17)shouldrarelyimplementSerializable,andinterf

java - Methods.class 中的代码重用 vs 策略模式和依赖注入(inject)

关闭。这个问题需要更多focused.它目前不接受答案。想改善这个问题吗?更新问题,使其仅关注一个问题editingthispost.2年前关闭。ImprovethisquestionStatus:Fendy和GlenBest的回答是同样可以接受并受到我的尊重,但既然可以接受并给予赏金,我选择Fendy的答案。Scenario:如果我有一些代码有多次重复使用在多类(很少有明显的微小参数更改)和并发线程,采用哪种方法?必须重用的代码可以是任何理智的东西(适当注意静态和非静态上下文以及方法制作技术)。它可以是一个算法,一个做连接、操作、关闭的数据库方法。任何事物。创建一些类,如MyMeth

java - 将类转换为不相关的接口(interface)

显然,这会导致编译错误,因为Chair与Cat无关:classChair{}classCat{}classTest{publicstaticvoidmain(String[]args){Chairchair=newChar();Catcat=newCat();chair=(Chair)cat;//compileerror}}为什么当我将Cat引用转换为不相关的接口(interface)Furniture时,我只会在运行时出现异常,而编译器显然可以告诉Cat没有实现Furniture?interfaceFurniture{}classTest{publicstaticvoidmain(S

java - 如何在Java中获取接口(interface)或抽象类方法的注解

我有一个这样的界面:publicinterfaceIFoo{@AnnotationTest(param="test")Stringinvoke();}我是这样实现的:publicclassFooimplementsIFoo{@OverridepublicStringinvoke(){Methodmethod=newObject(){}.getClass().getEnclosingMethod();AnnotationTestann=method.getAnnotation(AnnotationTest.class);if(ann==null){System.out.printl("P

java - 从 Kotlin 实现 Java 接口(interface)时出现 NullPointerException

我正在尝试在Kotlin中从RxJava实现BiFunction接口(interface),但我得到了一个NullPointerException。这是我在Kotlin中实现的Java接口(interface)。它来自RxJava2。packageio.reactivex.functions;importio.reactivex.annotations.NonNull;/***Afunctionalinterface(callback)thatcomputesavaluebasedonmultipleinputvalues.*@paramthefirstvaluetype*@param