草庐IT

继承权

全部标签

java - 更改生成的代码或使用继承?

我从事EMF项目。其中一个设计决策是不接触生成的代码,也不将其checkin。相反,每当需要更改某些内容时,都会创建一个包含更改的子类。该框架足够灵活来处理这个问题。但是,我遇到了一些工作开销。设计决策是基于对其他代码生成框架的不良体验而重新生成的。作为这个项目的新手,我想挑战那个设计决定,但我想先听听一般意见。我知道EMF项目团队建议进行代码内更改。但是你的经验是什么?EMF如何处理生成代码中的手动代码更改?您是否曾经遇到过丢失手动编写的代码的情况?代码是否曾进入不可维护状态? 最佳答案 Butwhatareyourexperie

java - 如何使 javadoc 继承适用于外部 API? (使用 Maven2)

当类重写具体方法或实现抽象方法时,Javadoc将自动继承,除非明确重写。或者,至少该工具会尝试执行此操作。它似乎不适用于链接的外部API。例如,当我在我的代码中实现java.util.Map或来自JRE的其他东西时,javadoc不是从JREjavadocs/apidocs继承/复制的。在我的具体情况下,我试图在Maven2Javadoc插件中配置它,但当我直接运行javadocCLI工具时它是一样的。我的Maven2Javadoc插件配置目前如下所示:org.apache.maven.pluginsmaven-javadoc-plugin2.7mavenhttp://downloa

java - Core Java 中的继承

对于我的家庭作业,我们的任务是“声明一个由四名“普通”大学员工、三名教职员工和七名学生组成的数组。提示用户指定要输入的数据类型(C,F,S)或退出选项(Q)。当用户继续时,接受适当人员的数据输入。如果用户输入的每个人类型的数量超过指定数量,则显示错误消息。当用户退出时,显示有关在适当的标题下列出每组人员的屏幕。如果用户在session期间没有为一种或多种类型的人员输入数据,则在适当的标题下显示适当的消息。”Class|Extends|Variables--------------------------------------------------------Person|None|

java - java集合接口(interface)中的继承

Java集合接口(interface)中存在一些继承关系。例如,Collection接口(interface)将扩展Iterable.我检查了JDK中的源代码,基类中定义的一些方法在子类中重复了几次。例如:Interable接口(interface)定义了一个方法Iteratoriterator();但是在界面Collection和List,也包含相同的方法。我的理解是,既然继承是为了减少重复,为什么还要在子类中定义相同的方法呢? 最佳答案 参见java.util.List“List接口(interface)在迭代器、add、rem

java - 循环继承使用

如果我用Java编写以下代码:publicclassAextendsA{publicstaticvoidmain(String[]args){}}这给出了涉及A的编译器错误消息循环继承。如果我编写两个类A和B,并且A继承B并且B继承A,也会发生同样的情况。这对我来说很有意义,因为很难想象这怎么可能。然后我向我大学的一位教授询问了这个问题。他说有些语言可以做到这一点,他感叹这在Java中是不可能的,并且他已经完成了一些使用循环继承等的项目,但我真的无法理解其中的任何一个。他还提到他在使用循环继承方面遇到了问题。你能告诉我这种奇怪的循环继承现象的可能用途吗?什么时候可能以及如何?是否存在这

java - 继承中的方法签名

在下面的代码中classA{publicvoidv(int...vals){System.out.println("Super");}}classBextendsA{@Overridepublicvoidv(int[]vals){System.out.println("Sub");}}然后我可以调用newB().v(1,2,3);//printSub而不是Super,这很荒谬,但效果很好。如果我将B更改为classB{publicvoidv(int[]vals){System.out.println("NotextendingA");}}对newB().v(1,2,3);的调用将无效。

java核心技术卷1 第五章:继承

学习重要的是出,而不是入,此前一直埋头向前学,忽视了复习的重要性。写一个博客作为自己的学习笔记,也可作为以后查漏补缺的资料,温故而知新。类,超类和子类一个继承另一个类,父类也称为超类,基类。"超类"中的超来自于集合理论,指的是父类,与之后的super关键字对应java中,类的继承默认为public继承(只有公共继承),与c++不同。子类public继承父类,所以继承到的字段和方法的访问权限都不变,和c++同,子类中无法直接访问父类的private成员(继承到了,但是无法访问)子类中可以overrride父类方法,覆写后直接调用使用的就是自己定义的方法。如在一个覆写方法中直接调用父类同名方法会循

java - 枚举继承,或类似的东西

我有一个字符串(这是一条消息)作为输入,我需要根据该字符串执行4种可能的操作之一我知道有eunm.valueOf()选项,但我有4个不同的枚举,每个枚举几乎没有可能的消息。看起来像:publicenumfirst{ONE,TWO,THREE};publicenumsecond{FOUR,FIVE,SIX};publicenumthird{SEVEN,EIGHT,NINE};publicvoidwork(Stringmessage){//HereIwanttocomparemessagestringtooneofthe3enums}是否可以用枚举的一种方法来做到这一点?或者我应该只尝试创

【自定义序列化器】⭐️通过继承JsonSerializer和实现WebMvcConfigurer类完成自定义序列化

目录前言    解决方案具体实现一、自定义序列化器二、两种方式指定作用域    1、注解  @JsonSerialize()    2、实现自定义全局配置 WebMvcConfigurer三、拓展 WebMvcConfigurer接口章末前言            小伙伴们大家好,上次做了自定义对象属性拷贝,解决了重构中尽量不要修改原有逻辑的问题,将String类型的字段转换成Date或者LocalDateTime类型。【对象属性拷贝】⭐️按照需要转换的类型反射设置拷贝后对象的属性-CSDN博客但是转换完成后还需要修改Date类型的值为带上时区的,比如”2024-02-0514:46:26“ 

java - 从类和接口(interface)重新继承静态字段

interfaceA{publicstaticStringname="A";}interfaceB{publicstaticStringname="B";}classXimplementsA{}classYextendsXimplementsB{}publicvoidtest_getField(){try{assertEquals(B.class.getField("name"),Y.class.getField("name"));}catch(NoSuchFieldExceptione){fail("Gotexception");}}为什么Y.class.getField("name