草庐IT

b-Class-Interface

全部标签

Java:接口(interface)可以包含其中定义的常量变量吗?

我可以在接口(interface)中创建publicstaticfinal变量吗?我可以在这些文件中保留一些常用的常量值吗? 最佳答案 是的,你可以:publicinterfaceConstants{publicstaticfinalintZERO=0;}但是,现在一般认为这不是一个好主意。如果接口(interface)也有真正的目的并没有那么糟糕,并且常量很可能被大多数实现使用...但是引入一个接口(interface)只是使获取常量变得更容易实际上是对接口(interface)目的的滥用。(这就是过去经常发生的事情。)

java - 为什么将 ArrayList 的泛型转换为父类(super class)不起作用?

有人可以向我解释为什么标记为//thislinegivesacompileerror(why?)的行吗?在下面的代码示例中不起作用?importjava.util.ArrayList;publicclassGenericCastCheck{classA{}classBextendsA{}publicstaticvoidmain(String[]args){AaObject=newA();BbObject=newB();//thislineworksfineaObject=bObject;//thislinegivesacompile(expected)bObject=aObject;A

java - 我如何声明实现类应该优化该字段的 java 接口(interface)字段

我如何声明实现类应该细化该字段的java接口(interface)字段?例如publicinterfaceIWorkflow{publicstaticfinalStringEXAMPLE;//interfacefieldpublicvoidreject();}//andimplementclasspublicclassAbstWorkflowimplementsIWorkflow{publicstaticfinalStringEXAMPLE="ABCD";/*MUSTHAVE*/publicvoidreject(){}...}谢谢。 最佳答案

java - 父类(super class)的隐藏方法

我读过OverridingandHidingMethods教程。从中,我收集了以下内容:Ifasubclassdefinesaclassmethodwiththesamesignatureasaclassmethodinthesuperclass,themethodinthesubclasshidestheoneinthesuperclass.因此,我做了以下事情:importjavax.swing.JTextArea;publicfinalclassJWrappedLabelextendsJTextArea{privatestaticfinallongserialVersionUID

java - 当我们实例化一个对象时,是否会创建父类(super class)的实例?

当我们在java中实例化一个特定的类时,是否会创建父类(superclass)的实例。如果是这种情况,那么实例化所有父类(superclass)的开销就会很大。我尝试了以下代码:publicclassAClass{publicAClass(){System.out.println("ConstructorA");}}publicclassBClassextendsAClass{publicBClass(){System.out.println("ConstructorB");}}publicclassTest{publicstaticvoidmain(String[]args){BCl

java - 跟踪所有实现特定接口(interface)的类?

很难解释我真正想要的是什么。我有一个接口(interface),它有一个方法getRuntimeInfo(),它为我提供了类变量的所有运行时调试信息。我想查看实现此接口(interface)的所有类的列表。我正在使用Java和Spring。我可以做到这一点的一种方法是从Spring上下文获取所有bean并使用instanceof运算符进行检查。但我不想因为明显的性能影响而这样做。我还有其他选择吗? 最佳答案 这个解决方案怎么样:@ComponentpublicclassWithAllMyInterfaceImpls{@Autowir

java - 我将如何重载接口(interface)中的方法?

如果我有这个界面publicinterfacesomeInterface{//method1publicStringgetValue(Stringarg1);//method2publicStringgetValue(Stringarg1,Stringarg2);}我希望能够将1或2个字符串传递给getValue方法,而不必在每个实现类中重写这两个字符串。publicclassSomeClass1impelmentssomeInterface{@OverridepublicStringgetValue(Stringarg1);}publicclassSomeClass2implemen

java - 父类和实现接口(interface)中同名的静态和非静态方法

我不是在问接口(interface)和抽象类之间的区别。个人工作成功,对吧?interfaceInter{publicvoidfun();}abstractclassAm{publicstaticvoidfun(){System.out.println("Abc");}}publicclassOvextendsAmimplementsInter{publicstaticvoidmain(String[]args){Am.fun();}}为什么会发生冲突? 最佳答案 static和非static方法不能在同一类中具有相同的签名。这是因

Java 与 Scala 功能接口(interface)用法

在Java中我可以这样做:Runnabletask=()->{System.out.println("Taskisrunning");};但是为什么在Scala中我不能做同样的事情!valtask:Runnable=()=>{println("Taskisrunning")}我收到一个编译器错误!我使用的是Scala版本2.11.8。typemismatch;found:()=>Unitrequired:Runnable 最佳答案 Scala2.12版支持使用“单一抽象方法”(SAM)将lambda表达式转换为类型,又名“Funct

java - 如何使接口(interface)实例方法只接受同一类的参数?

我想使用这样的界面:publicinterfaceResultItem{publicintgetConfidence();publicbooleanequals(ResultItemitem);publicResultItemcloneWithConfidence(intnewConfidence);}我用代表语音识别结果的不同种类的对象来实现它。我的想法是,我希望只比较同类结果。也就是说,如果我创建一个实现ResultItem的类IntResult,我希望方法签名变为:publicbooleanequals(IntResultitem);publicIntResultcloneWit