387 Stimmen

Long in Integer umwandeln

Wie konvertiert man eine Long Wert in eine Integer Wert in Java?

11voto

Jeff Foster Punkte 41930

Sie müssen es abtippen.

long i = 100L;
int k = (int) i;

Beachten Sie, dass ein long einen größeren Bereich hat als ein int, so dass Daten verloren gehen können.

Wenn Sie von den Schachteltypen sprechen, dann lesen Sie die Dokumentation .

10voto

Jasper de Vries Punkte 16523

In Java 8 können Sie Folgendes verwenden Math.toIntExact . Wenn Sie mit null Werte, verwenden:

Integer intVal = longVal == null ? null : Math.toIntExact(longVal);

Das Gute an dieser Methode ist, dass sie ein ArithmeticException wenn das Argument ( long ) überläuft eine int .

4voto

Adi Punkte 2024

Die beste und einfachste Methode ist, dies zu tun:

public static int safeLongToInt( long longNumber ) 
    {
        if ( longNumber < Integer.MIN_VALUE || longNumber > Integer.MAX_VALUE ) 
        {
            throw new IllegalArgumentException( longNumber + " cannot be cast to int without changing its value." );
        }
        return (int) longNumber;
    }

3voto

Edwin Miguel Punkte 419

Angenommen, nicht null longVal

Integer intVal = ((Number)longVal).intValue();

Es funktioniert zum Beispiel y Sie erhalten ein Objekt, das ein Integer oder ein Long sein kann. Ich weiß, das ist hässlich, aber es passiert...

2voto

Anjal Saneen Punkte 2968

Mit toIntExact(long value) wird der Wert des long-Arguments zurückgegeben, wobei eine Exception ausgelöst wird, wenn der Wert einen int überläuft. Dies funktioniert nur ab API-Level 24 oder höher.

int id = Math.toIntExact(longId);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X