Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaandroid定义导入_Java_Android_Import - Fatal编程技术网

javaandroid定义导入

javaandroid定义导入,java,android,import,Java,Android,Import,我有以下问题: 我有一个类common.java,它将被Android应用程序使用,也将被java应用程序使用。 此类导入特定于android的类(android.*) 如果我想构建Java应用程序,它当然会抛出一个不存在的导入错误。 以编程方式,我在if子句中执行所有特定于Android的操作: if (System.getProperty("java.vm.name").equalsIgnoreCase("Dalvik")) { //Android specific stuff } 那

我有以下问题: 我有一个类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代码导入你的公共库并扩展它,等等。我不想删除它们,因为我在Android类中也使用它们。。。所以我必须在Android和Java之间切换时重写导入。我研究了预处理,并考虑像Dave说的那样扩展它。谢谢