Ich schreibe einige FFI-Code in Java unter Verwendung eines von zwei Implementierungen einer Klasse kompiliert, die starke Nutzung von sun.misc.Unsafe
macht.Schreiben Java-Code, der
In Java 9 wird diese Klasse nicht mehr zugegriffen werden, und jdk.unsupported.Unsafe
werden wird. Ich möchte meinen Code schreiben, so dass es jetzt funktioniert, setzt aber 9.
Was in Java arbeiten, ist die am wenigsten hacky Weg, dies zu tun? Ich würde Binärkompatibilität bevorzugen, aber Quellkompatibilität ist auch in Ordnung.
Edit: Ich bin 100% bei der Verwendung von Reflexion nicht in Ordnung - oder sogar virtuellen Versands - jedes Mal, wenn ein Verfahren auf Unsafe
genannt wird. Die meisten dieser Methoden kompilieren zu einer einzigen Maschinenanweisung. Daher ist Leistung wirklich wichtig. Es ist in Ordnung, Wrapper zu haben - aber nur, wenn ich sicher sein kann, dass der JIT sie jedes Mal inline bringt.
Mein aktueller Plan ist es, eine geeignete Klasse zur Laufzeit zu laden.
Es wird "nicht unterstützt" ... – r1verside
@ r1verside Ich weiß, aber es ist fast sicher, nicht wegzugehen, weil so viel Code (einschließlich neuer Entwicklung!) Davon abhängt. – Demi
Vielleicht ist es an der Zeit, das zu tun, was Sie vor langer Zeit hätten tun sollen: Korrigieren Sie Ihren Code (Sie verwenden also keinen knorrigen alten Sonnencode). – Bohemian