当前位置: 首页 > news >正文

品牌网站建设专业定制室内设计效果图欧式风格

品牌网站建设专业定制,室内设计效果图欧式风格,学用mvc做网站,广告平面设计教程问题 我正在阅读有关Java中的接口的文章。其中提到我们必须实现compareTo方法才能在ArrayList容器上调用sort,例如Employee类应该实现 Comparable接口。 后面解释了为什么Employee类不能简单地提供compareTo方法而不实现Comparable接口?之所以需要接口…

问题

我正在阅读有关Java中的接口的文章。其中提到我们必须实现compareTo方法才能在ArrayList容器上调用sort,例如Employee类应该实现 Comparable接口。

后面解释了为什么Employee类不能简单地提供compareTo方法而不实现Comparable接口?之所以需要接口,是因为Java编程是强类型的。在进行方法调用时,编译器需要能够检查该方法是否确实存在。

因此,当我不实现Comparable接口并使用Arrays.sort方法时,我预计会出现编译时错误,但我没有观察到编译错误,而是得到了运行时错误。请解释为什么上述场景中没有显示编译时错误

以下是代码片段

package com.vrk.inheritance;import java.time.*;
import java.util.Arrays;public class Employee
{private String name;private double salary;private LocalDate hireDay;public Employee(String name, double salary, int year, int month, int day){this.name = name;this.salary = salary;hireDay = LocalDate.of(year, month, day);}public String getName(){return name;}public double getSalary(){return salary;}public LocalDate getHireDay(){return hireDay;}public void raiseSalary(double byPercent){double raise = salary * byPercent / 100;salary += raise;}/*public int compareTo(Object otherObject) {System.out.println("Employee compareTo called");return 0;}*//*** equalTo function in employee. Created on 8th Sep 2024* @param another object to compare to this object*/public boolean equals(Object otherObject) {// quick test to check if objects are identicalif ( this == otherObject) return true;// must return false if the explicit parameter is nullif(otherObject == null) return false;// if the classes don't match, they can't be equalif (getClass() != otherObject.getClass()) return false;// now we know otherObject is a non-null Employeevar other = (Employee) otherObject;// test whether the fields have identical value// Not sure in my setup below line is not working, but online compiler it is working. // java.util.Objects.equals(this.hireDay, other.hireDay);return true;}public static void main(String[] args) {var staff = new Employee[3];// fill the staff array with Manager and Employee objectsstaff[0] = new Employee("Harry Hacker", 50000, 1989, 10, 1);staff[1] = new Employee("Tommy Tester", 40000, 1990, 3, 15);staff[1] = new Employee("Ravi Tester", 60000, 1999, 4, 16);Arrays.sort(staff);}
}

解答

如果你看一下的文档Arrays.sort,你会发现它根本没有使用泛型;它只需要一个Object[]。这就是为什么你不会收到编译错误的原因。

这是出于历史原因:该方法是在Java引入泛型之前编写的

如果我们必须能够调用在类中实现的方法,为什么我们还必须实现接口?

因为该方法必须进行一些非平凡的反射。将Object转换为Comparable要容易得多,而且正如您所指出的,这更符合Java的类型系统理念。从本质上讲,Java不实现鸭子类型。

http://www.yayakq.cn/news/378097/

相关文章:

  • 手机网站模板.建立网站费用大概需要多少钱
  • 网站设计思路文案范文做网站好的网站建设公司
  • 网站开发业务好做吗嘉兴品牌网站建设
  • 用tp5做网站广州网站推广策划
  • 自己做网站的流程视频百度网站建设需要钱
  • 网站秒收录工具h5搭建
  • 石家庄做网站最好的公司哪家好保健品 网站模板
  • 长沙建站公司招聘青岛建设银行网站首页
  • 怎么用网页制作一个网站河南工程建设信息网官网 可登录中项网
  • 广州设计企业网站首都在线官网
  • 门户网站app有哪些青岛网站建设官网
  • 顺德做外贸网站装潢设计软件免费
  • 自己做一网站_多做宣传.东莞网站建设兼职
  • 网站建设全过程内蒙古兴安盟建设局网站
  • 商家在携程旅游网站怎样做宣传seo少女
  • 两学一做教育纪实评价系统网站没有外贸网站 如果做外贸
  • vps云主机可以建立几个网站廊坊网站排名优化公司哪家好
  • 长春百度网站快速排名网站制作时间
  • 住房建设危房改造网站怎么查网站哪里做的
  • 乐山做美食推荐的网站广告设计与制作学啥
  • 时装网站的建设网站业务维护
  • 如何建设一个简单的公司网站软件工程学什么及就业前景
  • 建设网站写需求分析郑州网站的建设
  • 网站分类 维护纯静态网站做优化有什么影响
  • 网站建设优化规划书河南国基建设集团有限公司网站
  • 常州 网站设计wordpress设置新浪邮箱
  • 网站公司模板小程序外包
  • 网站建设百度贴吧怎样重新下载wordpress
  • 上海精品网站建设网站主页 优帮云
  • 西安网站建设公司排吴中快速建设网站价格