Java Android - 定义进口

时间:2015-08-31 14:00:54

标签: 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 ...
}

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

1 个答案:

答案 0 :(得分:1)

你必须将common分裂成便携式和特定于os的代码,如下所示:

// 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 */ }
}