Java unterscheidet zwischen Objekttypen und primitiven Typen, was Anfängern Verwirrung bereitet. Typen wie ArrayList erfordern Objekttypen, können jedoch keine primitiven Typen direkt speichern. Java packt primitive Typen automatisch in ihre Objekt-Gegenstücke ein, was die Verwendung erleichtert. Der bereitgestellte Code demonstriert ein Missverständnis dieser Funktion, indem primitive Typen unnötigerweise in Objekte umgewandelt und wieder zurückgewandelt werden. Dieser Code holt Daten aus einer Datenbank ab und füllt sie mit Integer-Objekten in ein ArrayList. Anstatt das ArrayList direkt zu verwenden, erstellt der Code dann ein int-Array und kopiert die Integer-Werte in es. Diese unnötige Umwandlung stammt wahrscheinlich aus einer Vorliebe für primitive Arrays. Die Notwendigkeit, das ResultSet zu durchlaufen, um seine Größe zu bestimmen, erfordert eine Zwischenliste. Die Verwendung eines int-Arrays eine verfrühte Optimierung oder ein Abbild eines Entwicklers Vorliebe sein. Der Autor vermutet, dass der Code von jemandem geschrieben wurde, der mehr mit C vertraut ist. Der Code könnte vereinfacht werden, indem das ArrayList direkt verwendet wird und Java's Autoboxing ausnutzt. Dieser Ansatz vermeidet manuelles Einpacken, Auspacken und die Erstellung eines unnötigen int-Arrays.
thedailywtf.com
CodeSOD: Integral to a Database Read
