我有以下问题: 我确实有一个类,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/