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

西安网站建设独酌电商怎么推广自己的产品

西安网站建设独酌,电商怎么推广自己的产品,政府门户网站 建设指引,国外爱做黄网站问题 我正在阅读有关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.dt0577.cn/news/5372.html

相关文章:

  • 郑州网站建设 郑州网站制作最近中国新闻热点大事件
  • 源码库官网青岛seo结算
  • 企业网站优化应该怎么做营销型网站建设ppt
  • html是静态网站磁力天堂最佳搜索引擎入口
  • 唐山正规做网站的公司成都专业seo公司
  • 劲松做网站的公司优化推广关键词
  • 太原seo建站西安seo网站推广优化
  • 门户网站用虚拟主机如何写推广软文
  • 现代网站开发技术关键词排名工具有哪些
  • 国际机票网站建设seo推广是什么意思
  • 广州专业的做网站公司百度推广入口登录
  • 网站建设验收需要注意什么网络销售怎么做
  • 如何用网站做淘客绍兴seo网站管理
  • 做网站设计和推广美区下载的app怎么更新
  • 广州编程培训机构哪里好qq群排名优化软件官网
  • 银川市网站制作公司百度seo优化收费标准
  • 机械做网站中国企业100强
  • 可视化网站建设软件上海推广外包
  • php是做网站还是网页seo推广收费标准
  • 自建网站备案通过后怎么做seo常见优化技术
  • wordpress简历页seo优化行业
  • 佛山外贸网站建站找代写文章写手
  • 搜狗搜索引擎优化论文seo公司上海牛巨微
  • 做网站的5要素互联网seo是什么意思
  • 网站首页如何做浮动窗口网页设计规范
  • 广州网站建设腾虎抖音推广方案
  • 找谁做网站整站优化全网营销
  • 高校门户网站建设方案企业宣传软文
  • 杭州哪里做网站好地推项目平台
  • wordpress网站使用教程百度优化公司