In der Dokumentation für public Object get(Object obj)
Methode in der Field
Klasse wird angegeben, dassWas ist der Zweck der primitiven Getter/Setter in Feld?
Der Wert automatisch in einem Objekt gewickelt wird, wenn es einen primitiven Typen hat.
und für public void set(Object obj, Object value)
dass
Wenn die zugrunde liegende Feld eines primitiven Typ ist, wird ein Abwickeln Umwandlung den neuen Wert auf einen Wert eines primitiven Typ zu konvertieren versucht.
So sind ich richtig, dass der einzige Zweck der spezifischen primitiven Getter und Setter wie getInt
und setInt
ist eine redundante Typumwandlung zu verhindern?
Da dieser Code funktioniert gut
public class Test{
int i = 1;
public static void main(String[] args) throws Exception{
Test inst = new Test();
Class<?> clazz = inst.getClass();
Field fi = clazz.getDeclaredField("i");
int ii = (int) fi.get(inst);
Integer iii = new Integer(ii * 2);
fi.set(inst, iii);
}
}
ich frage, ob jemand ein Szenario weiß, dass Sie diese Methoden abgesehen von Leistungsgründen verwenden muss.
Soweit ich das beurteilen kann, haben Sie die Frage selbst beantwortet. Sie verweisen auf die Dokumentation, die grundsätzlich besagt, dass ein Primitiv bei Bedarf mit der Object-Version der Methoden ein- und ausgepackt wird. – aioobe
Ursprünglich war es nur aus Leistungsgründen, obwohl es einen zufälligen Grund geben könnte. –