R.drawable.bg1 ist ein int … aber ich möchte konvertieren in Integer Weil Hashmap dauert ein Integer… und wenn mehrere Objekte in Sekunden gezeichnet werden, wird eine Integer-Objekt-Laufzeit erstellt, die sich auf die Leistung des Codes auswirkt …
Oleg
int iInt = 10;
Integer iInteger = Integer.valueOf(iInt);
PS Antwort bearbeitet aufgrund von Kommentaren, die auf ein Problem mit dem ursprünglichen Lösungsvorschlag hinweisen.
“Sie sollten den Konstruktor für Wrapper-Klassen nicht direkt aufrufen, wie znew Integer(42). Rufen Sie stattdessen die valueOf-Factory-Methode auf, z. B. Integer.valueOf(42). Dies verbraucht normalerweise weniger Speicher, da gemeinsame Ganzzahlen wie 0 und 1 eine einzige Instanz teilen.“ Integer iInteger = Integer.valueOf(iInt);
– Benutzer3439968
3. Oktober 2015 um 15:01 Uhr
Ich denke, das wird automatisch gemacht, also könntest du so etwas haben Integer iInteger = iInt; und es sollte funktionieren.
– Ionut Negru
22. September 2016 um 13:34 Uhr
Ich wollte nur stackoverflow.com/q/3131136/384674 für “Sie sollten Konstruktor nicht aufrufen …” teilen.
– Betliste
15. Dezember 2018 um 20:14 Uhr
Nur aus Neugier, ist Integer value = (Integer) intValue; eine schlechte praxis? Oder wird es nicht für die Konvertierung von int nach Integer empfohlen?
– Simon z.
20. März 2019 um 1:32 Uhr
@ChaitanyaKarmarkar, das ist absolut keine schlechte Praxis. Ich habe es gesagt, weil er in der vorherigen Bearbeitung verwendet hat new Integer(int);. Aber ich denke, wenn es eine Methode gibt, die nur für einen bestimmten Zweck bereitgestellt wird, ist es immer sinnvoller, stattdessen die Methode zu verwenden. Ich habe das Gefühl, dass es auf diese Weise immer effizienter ist (im Allgemeinen nicht spezifisch für Integer-Casting).
– Simran Sharma
17. April 2021 um 12:47 Uhr
Verwandelnder Kaffee
Wie bereits erwähnt, ist eine Möglichkeit die Verwendung
int original = 32;
Integer converted = new Integer(original);
Aber Sie sollten den Konstruktor für Wrapper-Klassen nicht direkt aufrufen. Es ist eine schlechte Praxis, dies zu tun. Verwenden Sie stattdessen die speziell dafür vordefinierten Methoden.
Gibt es einen Grund, warum “Sie den Konstruktor für Wrapper-Klassen nicht direkt aufrufen sollten”?
– Jacob Holloway
25. April 2017 um 22:56 Uhr
Nicht wirklich – es ist nur eine Vermutung, dass der Entwickler nicht den Drang hatte, bei jedem Aufruf ein neues Objekt zu erstellen. Seltener Fall: Sie würden new Integer() verwenden, wenn Sie mehrere Integer-Objekte unterscheiden möchten. Meistens gilt: Du verwendest Integer und nicht int, nur weil du das auch haben willst Null Wert. Integer.valueOf() würde Ihnen in einem bestimmten Szenario bei mehreren Aufrufen dasselbe Objekt zurückgeben, wodurch Speicher gespart wird (bei new Integer() nie der Fall).
– Morphing-Kaffee
26. April 2017 um 0:14 Uhr
Ich wollte nur stackoverflow.com/q/3131136/384674 für “Sie sollten Konstruktor nicht aufrufen …” teilen.
– Betliste
15. Dezember 2018 um 20:14 Uhr
Ich hatte ein ähnliches Problem. Dazu können Sie eine Hashmap verwenden, die “string” und “object” akzeptiert, wie im folgenden Code gezeigt:
/** stores the image database icons */
public static int[] imageIconDatabase = { R.drawable.ball,
R.drawable.catmouse, R.drawable.cube, R.drawable.fresh,
R.drawable.guitar, R.drawable.orange, R.drawable.teapot,
R.drawable.india, R.drawable.thailand, R.drawable.netherlands,
R.drawable.srilanka, R.drawable.pakistan,
};
private void initializeImageList() {
// TODO Auto-generated method stub
for (int i = 0; i < imageIconDatabase.length; i++) {
map = new HashMap<String, Object>();
map.put("Name", imageNameDatabase[i]);
map.put("Icon", imageIconDatabase[i]);
}
}
Einer der Wege ist die Verwendung von following Integer obj = new Integer(primitiveValue)
oder in deinem fall new Integer(R.drawable.bg1). Das einzige Problem dabei ist, dass zur Laufzeit unnötigerweise ein Objekt erstellt würde.
Wenn Sie JDK 5 oder höher verwenden, können Sie Autoboxing nutzen.
Lassen wir das eine Weile beiseite.
Innerhalb der Klasse Integer (java.lang.Integer) haben wir viele Methoden, von denen eine folgende ist: static Integer valueOf(int) es gibt den Wert eines int als Integer zurück.
Also ein Integer.valueOf(R.drawable.bg1) könnte klappen.
Ivan T
i it Integer, int zu Integer
Integer intObj = new Integer(i);
zur Sammlung hinzufügen
list.add(String.valueOf(intObj));
Wenn Sie versuchen, eine Frage zu beantworten, die bereits beantwortet wurde. Fügen Sie der Antwort weitere Informationen hinzu, damit sie einen Mehrwert bietet.
– Vishnu667
21. Januar 2017 um 19:49 Uhr
Wenn Sie versuchen, eine Frage zu beantworten, die bereits beantwortet wurde. Fügen Sie der Antwort weitere Informationen hinzu, damit sie einen Mehrwert bietet.
– Vishnu667
21. Januar 2017 um 19:49 Uhr
14316700cookie-checkSo konvertieren Sie int in Integeryes