java - 试图使我的 Java 方法通用,以便它可以比较字符串或日期

标签 java

下面是我的方法。它适用于比较字符串。我想让它也能够比较日期或可能具有可接受定义的 compareTo 方法的任何类。寻找一种简单的方法来做到这一点。我正朝着一条骇人听闻的道路前进。也欢迎任何其他改进此方法的建议。

protected <E> int compareFields(E o1, E o2,String fieldName){
    String o1Data;
    String o2Data;
    try { 
        o1Data = (String) o1.getClass().getMethod(fieldName).invoke(o1);
        o2Data = (String) o2.getClass().getMethod(fieldName).invoke(o2);
    }
    catch(Exception e) {
        throw new RuntimeException(e);
    }
    if(o1Data == null && o2Data == null){
        return 0;
    } else if (o1Data == null){
        return 1;
    } else if (o2Data == null){
        return -1;
    }
    return o2Data.compareTo(o1Data);
}

最佳答案

为什么不使用 Comparable<T> , 这正是为了这个目的?

关于java - 试图使我的 Java 方法通用,以便它可以比较字符串或日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854470/

相关文章:

java - 如何通过生成随机电子邮件地址。 SQL Server 中的存储过程或函数

java - 解析持久性注释的类是哪个?

java - Interrupted 与 isInterrupted 实现

java - map 对象同步

java - java中如何共享符号?

Java 日期时间查看

java - 如何将整数(例如 19000101 )转换为 java.util.Date?

java - 使用 Spring 转换器

java - 串联sql语句插入

java - 如何将另一个 LayoutManager 应用于 JComboBox? (多列JComboBox尝试)