Ich habe nicht ganz verstanden, was die Methode bringt. Außerdem verstehe ich nicht ganz, wie Structs in der Methode behandelt werden müssen.
Vielen Dank schonmal
Vielen Dank schonmal
Field order must be explicitly indicated, since the field order as returned by Class.getFields() is not guaranteed to be predictable.
Vielen Dank das hilft mir auf jeden Fall weiter!In C gibt es structs. Wenn Du einb C (oder c++) struct nutzen willst, dann brauchst Du ein Gegenpart. In der JNA Library dient dazu die Klasse Structure (com.sun.jna) und zu dieser Klasse gehört die (früher abstrakte) Methode getFieldOrder(), welche eine Liste der Felder der struct zurück gibt.
Das ist deshalb wichtig, da die Auflistung der Felder, welche in einer Klasse vorhanden sind, bei der Abfrage über getClass().getFields() nicht fest ist:
Somit ist das keine Methode, die ein struct irgendwie behandelt sondern in JNA wird eine von Structure abgeleitete Klasse verwendet, um als Gegenpart zum c/c++ struct zu dienen. Und die Methode dient dazu, die Felder und ihre richtige Reihenfolge zu definieren.
Btw: Statt die Methode getFieldOrder zu überschreiben kann man auch die @FieldOrder Annotation nutzen. (http://java-native-access.github.io/jna/5.6.0/javadoc/com/sun/jna/Structure.FieldOrder.html)
Siehe dazu auch: http://java-native-access.github.io/jna/5.6.0/javadoc/overview-summary.html (Wobei da das Minimal-Beispiel gekürzt zu sein scheint, denn das Point Beispiel hat weder die Annotation noch überschreibt es die Methode...)
Structure.getFieldOrder() on class DriverConfig provides too many names [4] ... to match declared fields [3]