/ / Jak zaimportować funkcje statyczne za pomocą nazwy klasy zmiennej wdrażania? - java

Jak zaimportować funkcje statyczne za pomocą nazwy klasy zmiennej wdrażania? - java

Rozwijam międzyplatformową grę OpenGL na komputer i Androida.

Dla platformy komputerowej używam LWJGL:

import static org.lwjgl.opengl.GL20.*;

Do platformy Android używam:

import static android.opengl.GLES20.*;

Nie chcę tworzyć interfejsu GL i owijać ichfunkcje i nie chcę pisać tych samych klas dwukrotnie z różnymi importami. Wiem, że to jest możliwe, ponieważ Java jest kompilowana w natywny, gdy jest uruchamiana.

Odpowiedzi:

0 dla odpowiedzi № 1

Widzę dwa rozwiązania Twojego problemu:

  • Pierwszym z nich jest pakowanie (czego nie chcesz) i wstrzyknięcie właściwej klasy lub instancji w czasie wykonywania.

  • Po drugie, używasz wstępnego przetwarzania makr lubniektóre skrypty w czasie kompilacji, aby określić import, którego chcesz użyć w zależności od platformy docelowej. Może sprawić, że kompilacja będzie bardziej skomplikowana i prawdopodobnie będziesz musiał użyć jej jawnie org.lwjgl.opengl.GL20.* w fazie rozwoju.
    Tak więc najprościej byłoby zrobić utwórz skrypt do zastąpieniaorg.lwjgl.opengl.GL20.* przez android.opengl.GLES20.* kiedy platformą docelową jest Android.