Java Android -定义导入



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

最新更新