Dieser einfache Java-Code fügt 2
auf einen Satz von long
und anschließend druckt, ob 2
ein Mitglied des Satzes ist:Java-Code mit HashSet von Longs funktioniert nicht?
import java.util.*;
class A {
public static void main(String[] args) {
HashSet<Long> s = new HashSet<Long>();
long x = 2;
s.add(x);
System.out.println(s.contains(2));
}
}
Es sollte true
drucken, da 2
in dem Satz ist, sondern druckt es false
. Warum?
$ javac A.java && java A
false
Verwenden Sie ein 'Long'-Objekt anstelle eines' Long'-Primitivs. –
@LuiggiMendoza - Ein "langes" Primitiv hätte wegen Autoboxing gut funktioniert. Das Problem ist, dass es ein "int" Primitiv war. –
Entschuldigung, du hast Recht. Das Literal 2 wurde als "int" behandelt und somit zu "Integer" autoboxiert. –