第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅在為Android編譯時才編譯源代碼?

僅在為Android編譯時才編譯源代碼?

qq_笑_17 2023-09-20 17:31:28
我正在為 android 和 pc 制作游戲,并且必須導(dǎo)入 android 獨有的內(nèi)容以及包含僅適用于 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;}
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

您不能有條件地導(dǎo)入這樣的類。


相反,您應(yīng)該將在桌面和 Java 上運行的代碼封裝到它自己的類(或多個類)中,您可以將其用作庫。然后構(gòu)建一個桌面應(yīng)用程序和一個 Android 應(yīng)用程序,其中僅包含特定于一個版本的代碼。兩個特定于平臺的項目都將使用共享代碼作為庫。


如果您需要從共享代碼中調(diào)用特定于平臺的代碼,請通過接口執(zhí)行此操作,這樣您就不必關(guān)心共享代碼中特定于平臺的代碼。像這樣的東西:


public interface Printer {

  public void print(String s);

}

然后在該接口的實現(xiàn)中實現(xiàn)特定于平臺的代碼:


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");

}

然后在特定于平臺的代碼中創(chuàng)建這些類的實例并將其傳遞到您的草圖類中。


查看完整回答
反對 回復(fù) 2023-09-20
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號