You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android (Java) 如何导入并使用来自不同库的两个同名类?

不同库同名类导入冲突解决方案

Java不允许同时导入两个全类名不同但短类名相同的类,编译器无法识别使用时指向的具体类,因此会抛出你遇到的已定义报错,可通过以下两种方式解决:

  • 方案1:按需选择高频使用的类做单类型导入,低频类使用全类名调用
    比如你项目中org.joda.time.DateTime使用频率更高,仅导入该类即可,使用hirondelle.date4j.DateTime时补全包名:
    // 仅导入高频使用的joda DateTime
    import org.joda.time.DateTime;
    
    public class DateTest {
        public void testDate() {
            // 直接使用joda DateTime处理公历转伊斯兰回历逻辑
            DateTime gregorianDt = new DateTime();
            // 使用date4j DateTime处理日历单元格逻辑时补全完整包名
            hirondelle.date4j.DateTime calendarCellDt = new hirondelle.date4j.DateTime("2024-05-20");
        }
    }
    
  • 方案2:两个类均不做单类型导入,所有使用场景均写全类名
    适合两个类使用频率相近的场景,完全避免歧义:
    // 不导入任何DateTime类
    public class DateTest {
        public void testDate() {
            org.joda.time.DateTime gregorianDt = new org.joda.time.DateTime();
            hirondelle.date4j.DateTime calendarCellDt = new hirondelle.date4j.DateTime("2024-05-20");
        }
    }
    

内容的提问来源于stack exchange,提问作者Adam Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:09:03