草庐IT

b-Class-Interface

全部标签

java - 将泛型与实现相同接口(interface)的枚举类集合一起使用

我正在尝试做reverselookup在几个实现相同Field的枚举类上通过遍历Class的列表来实现界面es使用Guava的Maps.uniqueIndex:FieldvalueOfSearchName=null;for(finalClass>clazz:ImmutableList.of(EntityField.class,AddressField.class,PersonFunctionType.class)){valueOfSearchName=Fields.valueOfSearchName(clazz,term.field());//errorif(valueOfSearch

java - 接口(interface)中的嵌套类

Java编译器允许我在Interface中编写Class定义。这有什么具体用途吗?interfaceClassInterface{voidreturnSomething();intx=10;classSomeClass{privateinty;privatevoidclassDoingSomething(){}}}请解释。 最佳答案 用法与嵌套在另一个类中的类相同:它允许将类的范围限定为接口(interface)。你可以想象这样的事情:publicinterfaceSwitch{publicenumStatus{ON,OFF;}vo

java - Java 中命令模式的接口(interface)

是否有一个库已经提供了Java命令模式所需的接口(interface)?例如:publicinterfaceFunc1{publicRexecute(Tinput);}publicinterfaceFunc2{publicRexecute(T1input1,T2input2);}publicinterfacePredicate1{publicbooleanexecute(Tinput);}....谢谢。 最佳答案 Guava有你的第一个和第三个接口(interface)(称为Function和Predicate)。恕我直言,您的第二

使用 findbugs 的 java 编译错误。 com.sun.tools.javac.code.Symbol$CompletionFailure : class file for javax. annotation.meta.When not found

我正在尝试使用findbugs1.3.2的注释。我在一个简单的测试中使用了edu.umd.cs.findbugs.annotations.NonNull注释,它工作正常。但是,现在我有一个大项目,由子模块组成,使用maven,我通过在某个java文件中导入该注释得到以下编译错误:com.sun.tools.javac.code.Symbol$CompletionFailure:classfileforjavax.annotation.meta.Whennotfound可能是什么问题?我尝试在所有子模块中添加findbugs依赖项。也许它与jsr305冲突?我看到我们的依赖项之一使用js

java - 类在通用接口(interface)中实现自身是一种好习惯吗?

抱歉问题标题,我无法轻易用语言表达。我刚刚在一些代码中遇到过这个:publicclassMyClassimplementsMessage{...}我明白它的作用,但我以前从未见过以这种方式声明的类。我看到的缺点是现在MyClass是一个Message并且需要包含与其主要目的无关的实现方法。我看到的一个优势(除了它减少了我本来需要编写的其他类的数量)是对于像Comparable这样的东西,MyClass会知道如何将自身与其他实例进行比较,这反过来会使代码更简洁。这是好的做法吗?有什么经验法则吗? 最佳答案 这或多或少是在Java中拥有

java - 两个接口(interface)指定具有相同签名的方法,但指定具有不同的行为?

我有一些课publicclassmyClassimplementsA,B其中A和B都包含一个方法publicintdoSomething();,但是A.doSomething由接口(interface)指定执行与B.doSomething不同的操作.我已阅读TwointerfaceswithsamemethodsignatureimplementedinJavaclass,但这并没有真正解决我的问题,因为这些方法被重写以做同样的事情,但正如我上面所说,我的问题是关于何时在接口(interface)中指定它们来做不同的事情。例如,假设A.doSomething()应该返回0,而B.doS

java - Java 中的 int.class 包含什么?为什么它甚至有效?

在Java中,像int.class这样的原语有一个类文字是有效的。在Java中引入autoboxing功能之前是否允许这样做?我们从int.class中得到的对象实际上包含什么?为什么有效? 最佳答案 int不是类,所以int.class没有意义。原因是他们很便宜,使用一个Class来表示所有类型。因此,例如,Method.getReturnType()返回一个Class,它实际上可以代表一个类、原始类型、数组,甚至是void。在泛型出现之前,这很好,因为没有太多种类的类型。在泛型之后,事情变得非常困惑,新的Type层次结构就更没有

java - xs :integer produces @XmlElement with "type=String.class" 上的 JAXB javaType 自定义

当使用XJC从XSD生成Javabean时,我需要映射xs:integer至Integer而不是BigInteger.我添加了一个javaType标记到我的JAXB自定义文件(如本网站的许多答案中所述),并且工作正常。但是在生成的代码中我注意到@XmlElement标签现在有一个type=String.class参数.所以现在我想知道,为什么String?是因为parse和print方法正在从/向字符串对象转换吗?我试过xjc:javaType而不是jaxb:javaType,允许我替换生成的Adapter1自定义MyAdapter,但发生了完全相同的事情。如果这是正常的XJC行为,是

java - java中的 "invoking a static method with class name"和 "invoking a static method with an object"有什么区别吗?

在java中我们可以“用类名调用一个静态方法”也可以“用一个对象调用一个静态方法”java中“用类名调用静态方法”和“用对象调用静态方法”有什么区别? 最佳答案 没有区别,但建议以静态方式调用static方法,即使用ClassName。如果不这样做,静态分析仪通常会报告错误。这里要理解的重要一点是static方法是无状态的,因此使用实例调用它们会使阅读您的代码的人感到困惑。因为无论您使用什么实例调用static方法,结果都将保持不变。这是因为static方法属于类而不属于对象。 关于ja

java - 使用 LibSVM 的 Java 代码中的 Weka 错误 "cannot handle numeric class"

我正在尝试通过Weka使用基于LibSVM的分类器,但出现此错误:Exceptioninthread"main"weka.core.UnsupportedAttributeTypeException:weka.classifiers.functions.LibSVM:Cannothandlenumericclass!atweka.core.Capabilities.test(UnknownSource)atweka.core.Capabilities.test(UnknownSource)atweka.core.Capabilities.test(UnknownSource)atwek