我正在为Android和PC制作游戏,并且必须导入android专有的内容以及包含仅适用于android的代码的write方法
我希望能够做这样的事情,所以在我编译为非Android版本的情况下,不会出现编译错误
{{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");
}
然后在特定于平台的代码中创建这些类的实例,并将其传递到您的素描类中。