草庐IT

抽象代数

全部标签

Java 枚举——字段、抽象方法和类级别映射之间的选择

我编写了一个Java枚举,其中的值具有各种属性。这些属性可以通过以下任何一种方式存储:使用字段:enumEenum{V1(p1),V2(p2);privatefinalAattr;publicAattr(){returnattr;}privateEenum(Aattr){this.attr=attr;}}使用抽象方法:enumEenum{V1{publicAattr(){returnp1;}},V2{publicAattr(){returnp2;}}publicabstractAattr();}使用类级别map:enumEenum{V1,V2;publicAattr(){returna

java - 在抽象类中保存数据的最佳实践

因此,举个例子,假设我们有一个名为Question的抽象类,该问题包含很多字符串,一个用于问题本身,一个用于答案和两个回复发布给用户,如果他答对了/错了。publicabstractclassQuestion{privatefinalStringquestion;privatefinalStringanswer;privatefinalStringanswerCorrect;privatefinalStringanswerWrong;}我的问题基本上是,初始化所有字符串的常用方法是什么?到目前为止,我已经编写了2个版本来说明如何做到这一点,它们各有优缺点,我想知道是否有某种“最佳编码实

java - JAX-RS:从具有声明的抽象返回类型的方法返回具体类实例

我有一些使用JAX-RS和Jackson的REST服务。我的客户希望将抽象类作为服务的返回类型,而我不知道如何让JAX-RS客户端返回具体子类的实例。这对XML和JSON表示都可行吗?如果是这样,将感谢示例和/或链接。 最佳答案 可以尝试添加JsonTypeInfo和JsonSubTypes注解@JsonTypeInfo(use=Id.CLASS,include=JsonTypeInfo.As.PROPERTY,property="type")@JsonSubTypes({@Type(value=MySubClass.class)}

java - 抽象方法的 native 实现

在Java中是否允许在一个类中有一个抽象方法,然后在另一个使用JNI的本地语言中实现它。例子:abstractclassMommy{abstractprotectedvoidcall();}classSonextendsMommy{nativeprotectedvoidcall()/*'nativecode'*/}预期的行为是什么,它是可能发生的运行时错误还是“解决方法”一切正常? 最佳答案 Whatistheexpectedbehaviourisitaruntimeerrorthatmayoccursoreverythingisf

java - 在不同泛型参数的抽象类中返回泛型是不好的做法吗

我有这个抽象类,我在其中定义了一些实现数据库操作(获取行、插入、删除等)的方法现在我想制作将返回一些行(即整个表)的方法,但我希望它返回相应的模型类而不是域类(这基本上与域相同,但没有关系列表和一些表示层不需要的其他东西)。抽象类是publicabstractclassDomainService{protectedabstractLoggergetLogger();protectedfinalValidatorvalidator;protectedDomainService(){ValidatorFactoryfactory=Validation.buildDefaultValidat

java - 有一个扩展抽象类的空子类可以吗?

考虑以下几点:publicabstractclassItem{Stringname;Stringdescription;//concretegettersandsettersfollow}publicclassInventoryItemextendsItem{//emptysubclassofItem}publicclassCartItemextendsItem{intquantity;inttax;//gettersandsettersforquantityandtaxfollow}InventoryItem代表可供销售的商品,而CartItem代表添加到购物车的商品,因此它具有额外

java - 为什么 shortValue() 方法是具体的,而 intValue() 是抽象到 java.lang.Number 中的?

我已经阅读了java.lang.Number的源代码,我想知道为什么intValue()longValue()浮点值()doubleValue()是抽象的但是短值()byteValue()混凝土。源代码:publicabstractclassNumberimplementsjava.io.Serializable{publicabstractintintValue();publicabstractlonglongValue();publicabstractfloatfloatValue();publicabstractdoubledoubleValue();publicbytebyte

java - 在 Java 的抽象类中使用 protected 字段

我目前在一个基于Java的大学类里面,对于编码示例,教授正在使用protected字段供子类访问。我问这是否是不好的做法,并被告知这是正常的。是这样吗,为什么不对抽象方法使用setter和getter?我认为除非另有要求,否则最好限制尽可能多的信息。我对abstract父类使用setter和getter进行了测试,它适用于子类化的abstract父类。虽然抽象类不能被实例化,但据我所知,当子类被实例化时,它们仍然可以用来创建对象。这是一个简短的例子:publicabstractclassAnimal{protectedintheight;}publicclassDogextendsAn

java - 为什么 Java 8 的函数式接口(interface)中没有多个抽象方法?

这个问题在这里已经有了答案:WhyFunctionalInterfacesinJava8haveoneAbstractMethod?(4个答案)关闭5年前。@FunctionalInterfaceinterfaceMyLambda{voidapply1();intapply2(intx,inty);}现在使用Lambda表达式,为什么Java不能允许以下两个,因为它清楚地区分了两者:MyLambdaml1=()->System.out.println("Hello");MyLambdaml2=(x,y)->x+y;

java - 在不继承抽象类的情况下模拟对抽象类的公共(public)方法的调用,最好使用 mockito

我正在使用JUNIT+Mockito编写单元测试来测试如下方法:publicsomeObjectmethodUnderTest(){SomeObjectobj=SomeAbstractClass.someMethod();if(obj!=null){obj.someOtherMethod();}returnsomeThing;}我想模拟上面代码片段中提到的abstractClass"SomeAbstractClass"的调用,这样我就可以验证对"obj"的调用,比如:verify(SomeAbstractClass).someMethod();verify(obj).someOther