草庐IT

INTERFACE

全部标签

java - 当 A 实现 B Java 时,ArrayList<A> 转换为 ArrayList<B>

我是Java的新手,我有一个关于方法调用转换的问题。我创建了一个扩展ArrayList的新类,名为ListableList-但这似乎不是问题所在。问题是我有一个看起来像这样的方法publicstaticvoidprintList(ListableListlist,Stringseperator){for(Listableitem:list){System.out.println(seperator);System.out.println(item.toList());}System.out.println(seperator);}我这样调用这个方法:Output.printList(r

java - 使用 java.nio.file.Paths 接口(interface)时缺少方案 (IllegalArgumentException)

这是一个非常简单的Java问题。我在linux系统上使用Java8和eclipsekepler。我一直在尝试NIO.2。我的代码是:packagelucasTest;importjava.io.IOException;importjava.net.URI;importjava.net.URISyntaxException;importjava.nio.file.*;publicclassLucas{publicstaticvoidmain(String[]args)throwsURISyntaxException{URIu=newURI("./Lucas.java");Pathp=Pa

java - Java 中比较器接口(interface)的构造函数

我知道接口(interface)不能有构造函数,我们不能创建接口(interface)的对象。这是不可能的:Comparatorcmp=newComparator();我不明白如何使用关键字“newComparator()”创建匿名内部类。这个关键字不是创建了一个Comparator类型的对象吗?完整代码如下:importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;publicclassDemoApp{publicstaticvoidmai

java - 检测方法是否在 Java 接口(interface)中声明

帮助我使这个方法更加可靠:/***Checkifthemethodisdeclaredintheinterface.*Assumesthemethodwasobtainedfromaconcreteclassthat*implementstheinterface,andreturntrueifthemethodoverrides*amethodfromtheinterface.*/publicstaticbooleanisDeclaredInInterface(Methodmethod,ClassinterfaceClass){for(MethodmethodInInterface:i

java部分类

小序言。我是1.4jdk的优秀java开发人员。之后我切换到另一个平台,但在这里我遇到了问题所以问题是关于jdk1.6(或更高版本:))。我有3个耦合类,耦合的本质与native方法有关。波纹管是这3类的例子publicinterfaceA{publicvoidmethod();}finalclassAOperations{staticnativemethod(...);}publicclassAImplimplementsA{@Overridepublicvoidmethod(){AOperations.method(...);}}所以有接口(interface)A,它由AOpera

java - 如果父类/接口(interface)发生变化,类的字节码是否会发生变化?

我正在尝试确定是否需要重新编译构建链中的某些jar,如果我有以下结构,jar1在其源更改时编译,jar2在其源更改或jar时编译1已重新编译。jar1:publicclassFoo/*impl*/jar2:publicclassBarextendsFoo/*impl*/假设两个类之间的契约没有改变,即。添加抽象方法或将方法添加到接口(interface)等。我需要重新编译jar2吗?IE。如果对Foo中的私有(private)方法进行了一些更改,是否需要重新编译Bar?我尝试通过比较两个类的字节码来测试这个,在一个类中更改了一堆之后,正如预期的那样,它没有改变。然而,我的同事坚持认为他

java - Java中如何根据接口(interface)对象获取实现类名

我想从我的接口(interface)对象中获取实现类名——有什么方法可以做到这一点吗?我知道我可以使用instanceof来检查实现对象,但在我的应用程序中有将近20到30个类实现相同的接口(interface)来覆盖一个特定的方法。我想弄清楚它将调用哪个特定方法。 最佳答案 只需使用object.getClass()-它将返回用于实现您的接口(interface)的运行时类:publicclassTest{publicinterfaceMyInterface{}staticclassAClassimplementsMyInterf

java - ByteBuddy 代理接口(interface)

我正在尝试将Cglib代理转换为ByteBuddy。Cglib有net.sf.cglib.proxy.Proxy拦截所有方法调用的接口(interface)。我查看了ByteBuddy的文档,但找不到这样的示例。如果我用ByteBuddy实例化的每个对象都没有这样的接口(interface),我就会一次又一次地重复同样的事情。使用ByteBuddy有更好的方法吗?这是我的示例代码片段:服务:publicclassMyService{publicvoidsayFoo(){System.out.println("foo");}publicvoidsayBar(){System.out.pr

java - 如何在 NetBeans for Java 中查看给定接口(interface)的所有实现者?

作为Eclipse的老用户,我正在尝试评估NetBeans。在Eclipse中,我可以按F4,然后我会为给定的类或接口(interface)创建一个类层次结构。例如-显示所有实现InputStream的类。同样重要的是,它会在我的所有依赖项中向我展示这一点,而不仅仅是我的代码。 最佳答案 试试这个,选择类型,例如“String”,然后用鼠标右键单击->Navigate->InspectHierarchy。在右侧,您会看到一个名为“层次结构”的窗口,或者可能只是一个带有“层次结构”的垂直文本,这是一个最小化的窗口(单击以打开)。如果打

java - 解读Java反射性能: Why is it surprisingly very fast?

我看到其他线程说java反射性能比使用非反射调用时慢10-100倍。我在1.6中的测试表明情况并非如此,但我发现了一些其他有趣的事情,我需要有人向我解释。我有实现我的接口(interface)的对象。我做了三件事1)使用对对象的引用我将该对象转换为接口(interface)并通过接口(interface)调用方法2)使用对实际对象的引用直接调用方法3)通过反射调用方法。我看到#1接口(interface)调用最快,紧随其后的是#3反射,但我注意到直接方法调用是最慢的。我不明白,我希望直接调用最快,然后是接口(interface),然后反射会慢得多。Blah和ComplexClass与主