假设我们有一个课程如下:
public class Time{ int hour; int min; Time(int hour,int m){ hour=h; min=m; } public String toString(){ return hour+":"+min; } }
我想写一些像这样的代码,主要是结果,如评论中所示:@H_404_5@
Time t1 = new Time(13,45); Time t2= new Time(12,05); System.out.println(t1>=t2); // true System.out.println(t1<t2); // false System.out.println(t1+4); // 17:45 System.out.println(t1-t2); // 1:40 System.out.println(t1+t2); // 1:50 (actually 25:50) System.out.println(t2++); // 13:05
我可以通过接口等来做到这一点,或者我唯一能做的就是编写方法而不是使用运算符?@H_404_5@
提前致谢.@H_404_5@
解决方法
这称为运算符重载,Java不支持:
Operator overloading in Java
编辑:正如一些评论所说,你可以实现Comparable来制作你自己的compareTo方法https://stackoverflow.com/a/32114946/3779214@H_404_5@