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