Default-Wert eines BigInteger
Ich habe einen code, in dem ich die Umwandlung von Long
zu BigInteger
- und Umgekehrt. Während der Konvertierung von Long
zu BigInteger
, ich möchte sicherstellen, dass es keine NullPointerException
. Also der code sieht so aus:
(myModel.getLongVariable()!=null)?BigInteger.valueOf(myModel.getLongVariable()):**??**;
Wenn Sie sehen, die ?? Teil, ich bin mir nicht sicher was default-Wert zu setzen. Die BigInteger Spezifikationen keinen default-Konstruktor wie new BigInteger()
.
Was jeder hier schon sagt ist die naheliegendste option, D. H. die Verwendung BigInteger.ZERO
. Aber zero ist einer der Werte und entsprechend im rest der Strömung. Ich würde grundsätzlich schreiben in eine xml-und ich bin zu erforschen, wenn ich eher machen, als blank statt null
Jede weitere Anregung dankbar.
- Wenn es tatsächlich
long
können es nichtnull
. Objekt-Referenzen werden kannnull
aberlong
ist ein primitiv, so dass es initialisiert, um standardmäßig null. - Hängt davon ab, was Sie wollen, um zurückzukehren. Aber Sie haben einige Konstanten wie
BigInteger.ZERO
. - Lange ist in der Regel initialisiert
0
. Machen Sie IhreBingInteger
nehmen0
Wert? - Alle ich entschuldige mich für den Fehler. Seine wrapper-Klasse Long
- Wenn Sie dieses default-Wert für Multiplikation oder division operation, Sie bevorzugen die Verwendung
BigInteger.ONE
stattBigInteger.ZERO
. - Was jeder hier schon sagt ist die naheliegendste option. Aber zero ist einer der Werte und entsprechend im rest der Strömung. Ich würde grundsätzlich schreiben in eine xml-und ich bin zu erforschen, wenn ich eher machen, als blank statt null.
- Aber von Ihrer aktuellen Erklärung könnten die Leser denken, die null muss sein, den Standard-Wert, ich bin nur besagt, dass dies ist nicht immer wahr. Wenn du gehst zu tun, zum Beispiel, finanzielle Vorgänge, und müssen in der default-Wert für einen der Faktoren in eine große Formel, die standardmäßig mit dem Wert 1 statt 0. Wenn wäre besser, wenn Sie angeben, diese in Frage zu stellen (und Antworten).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei sinnvolle Wert zurückgeben
null
parameter:BigInteger
bietet die ständigeBigInteger.NULL
könnte man verwenden für die)null
Null ist die nächste Sache, die "leer" würden Sie gerne zurückkehren:
unter der Annahme, dass
myModel.getLongVariable()
ist wieder einLong
Objekt: Sie könnenBigInteger.ZERO
als Standard-Wert:Anderen Konstanten Felder des
BigInteger
Klasse sind:BigInteger.ONE
: Die BigInteger Konstante einBigInteger.TEN
: Die BigInteger konstant zehn.Gibt es eine weitere Konstante, die nicht genannt ist, innerhalb der Dokumentation für die Vermietung nicht, dass jemand zu wissen:
BigInteger.TWO
: Wert2
, dieprivate
Edit:
BigInteger
ist eine öffentliche Klasse. Wer hindert Sie, zu erweitern und implementieren dieser Konstruktor ?TWO
wie es ist eigenes Objekt. Ich habe aktualisiert die Antwort. SchauenMein Vorschlag: geben Sie einen Standardwert.
BigInteger.ZERO
statt.