/ / Wie werden statische Funktionen mit dem Namen der Deploy-Variablenklasse importiert? - Java

Wie importiere ich statische Funktionen mit dem Namen einer Variablen? - Java

Ich entwickle ein plattformübergreifendes OpenGL-Spiel für Computer und Android.

Für Computerplattform verwende ich LWJGL:

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

Für Android-Plattform verwende ich:

import static android.opengl.GLES20.*;

Ich möchte keine Schnittstelle GL erstellen und diese verpackenund ich möchte nicht zweimal die gleichen Klassen mit unterschiedlichen Importen schreiben. Ich weiß, dass es möglich ist, weil Java in native kompiliert wird, wenn es gestartet wird.

Antworten:

0 für die Antwort № 1

Ich sehe zwei Lösungen für Ihr Problem:

  • Das erste ist das Wrapping (das Sie nicht wollen) und die Injection der richtigen Klasse oder Instanz zur Laufzeit.

  • Zweitens wird eine Makro-Vorverarbeitung verwendet oderEinige Skripte zur Kompilierungszeit, um anzugeben, welchen Import Sie je nach Zielplattform verwenden möchten. Dies kann die Kompilierung komplizierter machen und Sie müssen wahrscheinlich explizit darauf zurückgreifen org.lwjgl.opengl.GL20.* während der Entwicklungsphase.
    Am einfachsten wäre es also zu tun Erstellen Sie ein zu ersetzendes Skriptorg.lwjgl.opengl.GL20.* durch android.opengl.GLES20.* wenn die Zielplattform Android ist.