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

上海做网站的公司官网站长素材音效下载

上海做网站的公司官网,站长素材音效下载,软件需求分析文档范例,wordpress esu问题 我正在阅读有关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.mmbaike.com/news/110303.html

相关文章:

  • 电商网站的二级菜单怎么做软件开发工程师
  • 岳阳二手房网站惠州seo按天计费
  • 电脑搭建网站步骤百度网盘app官方下载
  • 室内设计方案西安seo计费管理
  • 帮别人做网站收多少钱合适外包网站有哪些
  • 网站建设全程揭秘seo教程搜索引擎优化
  • 苏州大写的网站建设单页面网站如何优化
  • whmcs整合wordpress百度怎么优化网站排名
  • 唐山长城网站建设培训心得体会500字
  • 网站建设宣传资料网络app推广是什么工作
  • 网站建设教程培训长沙靠谱的关键词优化
  • 做网站用什么web服务器吗2023b站免费推广入口游戏
  • 网站建设人员职责如何用google搜索产品关键词
  • 腾讯云镜像安装wordpressseo快速排名点击
  • 手机特效视频制作软件免费襄阳网站推广优化技巧
  • 吉林省建设厅官方网站google app下载
  • 陕西省住房和建设厅官方网站seo技巧seo排名优化
  • 网站怎么做二维码链接地址seo外链网
  • 什么直播可以做游戏视频网站最近一周新闻
  • 电子商务网站的特色市场营销七大策略
  • wordpress api jsonaso优化推广
  • 网站怎么加二级域名整合营销是什么
  • 怎么做网站才能吸引人磁力搜索引擎2023
  • 网站制作怎么做让点击高站长是什么职位
  • 做犯法任务的网站做网络推广工作怎么样
  • 太原北京网站建设公司今日头条国际新闻
  • 哪家网站建设百度网址
  • 工业设计图片产品深圳最好seo
  • 电商网站营销方案网站运营维护的基本工作
  • wordpress仿gitbookseo是什么意思新手怎么做seo