草庐IT

b-Class-Interface

全部标签

java - 如果将 Number 作为接口(interface)实现,是否会产生问题?有好处吗?

在最近的一个问题中,我遇到了Number抽象类的使用。现在因为Java8在这里,有默认方法,所以Number可以一个接口(interface)并写成:publicinterfaceNumber{publicintintValue();publiclonglongValue();publicfloatfloatValue();publicdoubledoubleValue();defaultpublicbytebyteValue(){return(byte)intValue();}defaultpublicshortshortValue(){return(short)intValue()

java - 根据泛型接口(interface)的实现限制java中的泛型类型

所以我有2个通用接口(interface)。第一个接口(interface)是这样实现的。publicinterfaceFirst{voidmethod(Ee)}publicclassFirstImplimplementsFirst{voidmethod(Strings){System.out.println(s);}}publicclassFirstImpl2implementsFirst{voidmethod(Doubled){System.out.println(d);}}我需要第二个接口(interface)(第二个接口(interface)如下所示)的泛型类型以仅允许在实现第

java - “No Public Class” 在它的包中真的可以到达吗?

这个问题在这里已经有了答案:Whatareauxiliaryclasses?(2个答案)关闭6年前。在《ThinkinJava》中,作者说:Youjustleavethe"public"keywordofftheclass,inwhichcaseithaspackageaccess.(Thatclasscanbeusedonlywithinthatpackage.)为了证明这一点,我创建了一个公共(public)类和一个非公共(public)类:packagecom.ciaoshen.thinkinjava.chapter7;importjava.util.*;//Mypubliccl

java - 谁能解释 Proguard 配置设置 : -keep @interface *

这是有问题的配置设置:-keep@interface*这篇文章中引用了此设置:https://stackoverflow.com/a/17437740/367544Proguard手册中的此处:https://www.guardsquare.com/en/proguard/manual/troubleshooting#notkept但手册(或帖子)并未解释此配置设置的工作原理或原因。我认为此配置值会保留在您的应用程序中定义的任何注释。我在这里强调defined这个词是因为我想将它与used注释的地方进行比较。因此,如果我在我的代码中定义了一个注释,如public@interfaceMy

java - 如何使 JavaCompiler.CompilationTask 使用自定义 ClassLoader 或将 .class 文件用于 missin .java 文件?

更具体:我自己写了ClassLoader,加载.jar来自全局库路径的文件.jar来自项目特定路径的文件编译.java项目特定路径中的文件加载所有.class项目特定路径中的文件到目前为止,这分离了我的项目实例,从所有(子)目录加载一切正常,适用于(1)所有库和(2)子库,(3)可以编译所有.java文件,(4)可以加载.class文件,我还可以重新实例化已经加载的类,因为我的ClassLoader管理子ClassLoader允许这样做。现在,我想改进的是,在(3)处调用编译器时,我不想每.java重新编译一次目录中的文件,但只有那些,其中对应的.class文件不存在或时间戳错误。所以

java - 用户创建的新类(class)?

考虑这种情况:我有一个水族馆模拟器,里面有5种不同类型的鱼。不同的类型意味着不同的属性(速度、颜色、饥饿等)。如果我希望我的模拟器的用户能够创建一种新型鱼并为其属性赋予值怎么办?程序员是如何实现的?我是否需要某种“事件处理”来在我的“Fish”类中添加一组特定的代码行?这是一个有效的想法吗?(万一它是必不可少的,语言是Java。为了避免任何误解并防止像“这个uni工作吗?”这样的评论,是的。但我不是在寻找答案,我对这个概念很好奇.)编辑:是的,很遗憾我没有提到交互方式:GUI。因此,想象一个名为“添加新物种”的选项卡,其中有一个字段用于描述鱼类的每个属性(类型、速度、颜色等)。因此,用

java - 使用@annotations 来标记监听器方法而不是带有方法的接口(interface)是个好主意吗?

首先是的——这是主观的。我最近注意到一些库似乎在某些类中使用让用户标记监听器方法作为监听器使用不同的注释来记录不同的事件。Infinispan和WELD就是这种方法的例子。我讨厌这种模式的地方没有类型安全需要阅读doco以找出事件的正确类型签名,而不仅仅是实现。对于实现者来说,这会非常困惑,因为他们需要更多的支持代码来发现和验证提交的监听器类、保留该方法并分派(dispatch)它等。反射分派(dispatch)的东西使触发事件变慢。当然,可以使用ASM生成一个真正的类,但与触发一个简单的listener.onEvent相比,这需要做更多的工作...可能的原因使细粒度的监听器成为可能。

java - 具有反向关系的通用接口(interface)

我想创建两个具有反向关系的接口(interface)。publicinterfaceItem>>{publicCgetCategory();publicvoidsetCategory(Ccategory);}我不确定表达式CextendsCategory>是否正确是正确的,但至少没有编译错误。publicinterfaceCategory{publicListgetItems();publicvoidsetItems(Listitems);}IextendsItem发出警告Itemisarawtype.ReferencestoItemshouldbeparametrized.我试过了I

java - 如何在基于 Swing 或 NetBeans 平台的 Java GUI 应用程序中更改 WM_CLASS 值?

所有基于Swing/NetBeans的JavaGUI应用程序似乎都具有相同的WM_CLASS值:WM_CLASS(STRING)="sun-awt-X11-XFramePeer","java-lang-Thread"可以通过发出xprop命令并指向窗口来查看此参数。自定义它的实际目的是让类似Mac的停靠栏(例如AWN(以及Ubuntu的Unity))区分应用程序窗口并将它们分组在应用程序的固定启动器图标下。为此,需要在~/.local/share/applications或的.application文件中相应地设置StartupWMClass参数/usr/共享/应用程序。不用说,如果多

java - Eclipse 中的接口(interface)绑定(bind)

我在Eclipse(Helios)/STS中有以下代码,它在运行Java应用程序时运行并打印控制台输出,尽管存在明显的编译问题publicinterfaceITest{Stringfunc();}publicstaticclassTestimplementsITest{voidprintFunc(){System.out.println("InsideTestFunction");}}publicstaticvoidmain(String[]args){Testtest=newTest();test.printFunc();}任何人都可以查明此Eclipse功能背后的原因。注意:在外部