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

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


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


boolean android = "The Android Project".equals(System.getProperty("java.specification.vendor"));

void setup(){

    if (android)

        importAndroid();

    //other setup stuff irrelevant to the question

}


void importAndroid(){

    import android.content.SharedPreferences;

    import android.preference.PreferenceManager;

    import android.content.Context;

    import android.app.Activity;

}


qq_笑_17
浏览 75回答 1
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");}然后在特定于平台的代码中创建这些类的实例并将其传递到您的草图类中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java