[JAVA] - int out of range

thepro1

Lt. Junior Grade
Registriert
Apr. 2008
Beiträge
411
Hallo,

ich habe folgendes, mir unerklärliches, Problem:

Code:
package aufgabe_1;

import java.util.Date;

/**
 * Klasse Versandobjekt
 * 
 * @author: Rene Winter
 */
public class Versandobjekt {
    private long barcode;
    private long sender_nr;
    private long empfaenger_nr;
    private Date sendezeit;
    private Date zustellzeit;
    private boolean zugestellt;
    private double laenge;
    private double breite;
    private double hoehe;
    private double gewicht;
    
    // Standardkonstruktor
    public Versandobjekt(){
        this([COLOR="Magenta"]100000000001[/COLOR],[COLOR="Magenta"]500000000001[/COLOR],[COLOR="Magenta"]800000000001[/COLOR],new Date(),new Date(),true,280,200,120,2);
    }
    
    // Initialisierungskonstruktor
    public Versandobjekt(long barcode, long sender_nr, long empfaenger_nr, Date sendezeit, Date zustellzeit, boolean zugestellt, double laenge, double breite, double hoehe, double gewicht){
        setBarcode(barcode);
        setSender_nr(sender_nr);
        setEmpfaenger_nr(empfaenger_nr);
        setSendezeit(sendezeit);
        setZustellzeit(zustellzeit);
        setZugestellt(zugestellt);
        setLaenge(laenge);
        setBreite(breite);
        setHoehe(hoehe);
        setGewicht(gewicht);
    }
    
    // Kopierkonstruktor
    public Versandobjekt(Versandobjekt v){
        this(v.getBarcode(),v.getSender_nr(),v.getEmpfaenger_nr(),v.getSendezeit(),v.getZustellzeit(),v.getZugestellt(),v.getLaenge(),v.getBreite(),v.getHoehe(),v.getGewicht());
    }
    
    public long getBarcode() {
        return barcode;
    }
    public void setBarcode(long barcode) {
        this.barcode = barcode;
    }
    public long getSender_nr() {
        return sender_nr;
    }
    public void setSender_nr(long sender_nr) {
        this.sender_nr = sender_nr;
    }
    public long getEmpfaenger_nr() {
        return empfaenger_nr;
    }
    public void setEmpfaenger_nr(long empfaenger_nr) {
        this.empfaenger_nr = empfaenger_nr;
    }
    public Date getSendezeit() {
        return sendezeit;
    }
    public void setSendezeit(Date sendezeit) {
        this.sendezeit = sendezeit;
    }
    public Date getZustellzeit() {
        return zustellzeit;
    }
    public void setZustellzeit(Date zustellzeit) {
        this.zustellzeit = zustellzeit;
    }
    public boolean getZugestellt() {
        return zugestellt;
    }
    public void setZugestellt(boolean zugestellt) {
        this.zugestellt = zugestellt;
    }
    public double getLaenge() {
        return laenge;
    }
    public void setLaenge(double laenge) {
        this.laenge = laenge;
    }
    public double getBreite() {
        return breite;
    }
    public void setBreite(double breite) {
        this.breite = breite;
    }
    public double getHoehe() {
        return hoehe;
    }
    public void setHoehe(double hoehe) {
        this.hoehe = hoehe;
    }
    public double getGewicht() {
        return gewicht;
    }
    public void setGewicht(double gewicht) {
        this.gewicht = gewicht;
    }
    
    
    
    
}

Bei den 3 rot markierten Zahlen bringt er mir folgenden Fehler:
The Literal of type int is out of range.

es ist doch aber ein long und kein int :freak:
 
Joar das kann gut sein aber du musst ein L an die Zahl anhängen da bei Java alles vom Typ Int ist, solange du es nicht angibst

Code:
    public Versandobjekt(){
        this(100000000001[COLOR="Red"]L[/COLOR],500000000001[COLOR="Red"]L[/COLOR],800000000001[COLOR="Red"]L[/COLOR],new Date(),new Date(),true,280,200,120,2);
    }

Das Problem gibt es auch mit Float (F an die Zahl hängen), naja Problem ist es nicht, einfach eine Eigenheit von Java ;)
 
Zuletzt bearbeitet:
SilverBo hat recht, bei so langen Zahlen brauchst du Long, also hinten ein L dranhängen
 
Häng an die Zahlen mal ein "L" an.

mfg
 
Du könntest besonders lange Zahlen auch in einem String speichern, allerdings must du die Zahlen zum berechnen dann mit einem Parse Befehl "zurückholen", falls du etwas berechnen musst. Ein weiterer Vorteil wäre, dass du Teilzahlen mit charAt auslesen kannst.
 
String casten ist aber teuer. Würde ich nur im absoluten Notfall benutzen.

MfG
 
Zurück
Oben