Java Android - 定义导入

标签 java android import

我有以下问题: 我确实有一个类,common.java,Android 应用程序和 Java 应用程序都会使用它。 此类导入 android 特定类 (android.*)。

当然,如果我想构建 Java 应用程序,它确实会抛出导入不存在的错误。 我以编程方式在 if 子句中执行所有 Android 特定的操作:

if (System.getProperty("java.vm.name").equalsIgnoreCase("Dalvik")) {
  //Android specific stuff
}

那么:有没有一种方法可以让我仅在构建 Android 应用程序时也可以导入 Android 类?就像围绕导入的 if 子句一样?

if(System.getProperty("java.vm.name").equalsIgnoreCase("Dalvik")) {
   import ...
   import ...
}

希望我的问题很清楚。谢谢!!

最佳答案

您必须像这样将通用代码拆分为可移植代码和特定于操作系统的代码:

// has no android or j2se specific code
public class common {
    public void someCommonfunction() {...someOsSpecificcode(); ...}
    protected abstract void someOsSpecificcode();
}

// has android specific code
public class commonAndroid extends common {
    protected void someOsSpecificcode() { /* android specific implementation */ }
}

// has j2se specific code
public class commonJ2se extends common {
    protected void someOsSpecificcode() { /* j2se specific implementation */ }
}

关于Java Android - 定义导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313104/

相关文章:

python - Python 类定义中的 "implements"是什么意思?

java - 在 Java 中导入类

java - 如何以字符串类型按日历对 map 进行排序?

android - 多个 android repo sync fatal error

java - 什么时候创建/销毁常量字符串?

android - 在ijkplayer中构建ffmpeg

android - ViewPager 中的嵌套 fragment 的高度和宽度为零

php - 从 PHP 调用时 python 导入失败

java - 如何将我的 apache 项目设置为默认程序启动

java - 在 Java Joda Time 中使用 "isBefore"进行仅日期比较