仅在为Android编译时才编译源代码吗?

时间:2019-10-04 02:28:35

标签: java android windows processing

我正在为Android和PC制作游戏,并且必须导入android专有的内容以及包含仅适用于android的代码的write方法

我希望能够做这样的事情,所以在我编译为非Android版本的情况下,不会出现编译错误

{{1}}

1 个答案:

答案 0 :(得分:1)

您不能有条件地导入此类。

相反,您应该将在台式机和Java上运行的代码封装到自己的类(或多个类)中,您可以将其用作库。然后构建一个桌面应用程序和一个Android应用程序,其中仅包含特定于一个版本的代码。这两个平台特定的项目都将共享代码用作库。

如果您需要从共享代码中调用特定于平台的代码,则可以通过一个接口来调用,这样您就不必在共享代码中关心特定于平台的代码。像这样:

public interface Printer {
  public void print(String s);
}

然后在该接口的实现中实现平台特定的代码:

public class DesktopPrinter implements Printer {
  public void print(String s) {
    System.out.println(s);
  }
}


public class AndroidPrinter implements Printer {
  public void print(String s) {
    Log.d("MyApp", s);
  }
}

然后在您的处理代码中,您将永远只使用以下接口:

Printer printer;

void setPrinter(Printer printer) {
  this.printer = printer;
}

void draw(){
  printer.print("in draw");
}

然后在特定于平台的代码中创建这些类的实例,并将其传递到您的素描类中。