Cum pot converti de la int la Timp în Java?

Tot găsesc ambele pe aici și Google persoane care au probleme de a merge la "lung" pentru a int si nu invers. Totuși, am'sunt sigur că am'm, nu doar a alerga în acest scenariu înainte de a merge la int pentru a "Lungi".

Singurul alte răspunsuri am'am găsit au fost "Doar setați-l ca mult Timp pe primul loc" care se't adresa întrebarea.

Inițial am încercat casting dar am o "`nu Poate cast la int la Timp"

for (int i = 0; i < myArrayList.size(); ++i ) {
    content = new Content();
    content.setDescription(myArrayList.get(i));
    content.setSequence((Long) i);
    session.save(content);
}

După cum vă puteți imagina I'm un pic nedumerit, am'm-a blocat folosind int deoarece unele conținut vine ca un ArrayList și entitatea pentru care am'm stocarea acestei informații impune secvență număr cât mai Mult.

Comentarii la întrebare (4)
Soluția

Rețineți că există o diferență între o distributie de "lung" si o distributie de "Lung". Dacă ai aruncat la "lung" (un primitiv valoare) atunci ar trebui să fie în mod automat cutie de la un "Lung" (referința de tip cu asta-basta).

Ai putea folosi alternativ " nou "pentru a crea un exemplu de "Lung", inițializarea cu int valoarea.

Comentarii (8)

Utilizați următoarele: de mult Timp.valueOf(int);.

Comentarii (8)

Dacă aveți deja int introduce ca un Întreg, puteți face acest lucru:

Integer y = 1;
long x = y.longValue();
Comentarii (0)

folosi

new Long(your_integer);

sau

Long.valueOf(your_integer);
Comentarii (0)

Am o mică jucărie, care, de asemenea, oferte cu non interfețe generice. Am'm OK cu ea aruncând o ClassCastException dacă hrana greșit (OK și fericit)

public class TypeUtil {
    public static long castToLong(Object o) {
        Number n = (Number) o;
        return n.longValue();
    }
}
Comentarii (0)

În Java se poate face:

 int myInt=4;
 Long myLong= new Long(myInt);

în cazul dumneavoastră, ar fi:

content.setSequence(new Long(i));
Comentarii (0)

Ce Zici

int myInt = 88;

// Nu va compila

Long myLong = myInt;

// Întocmește și păstrează non-NULL spiritul int. Cel mai bun a aruncat este nu arunca deloc. Desigur, utilizarea de caz poate necesita mult Timp și posibile valori NULL. Dar dacă int, sau alte tânjește sunt singura intrare, iar metoda poate fi modificat, aș sugera această abordare.

long myLong = myInt;

// Compilează, este cel mai eficient mod, și de a face clar faptul că sursa de valoare, este și nu va fi niciodată NUL.

Long myLong = (long) myInt;
Comentarii (0)
 1,new Long(intValue);
 2,Long.valueOf(intValue);
Comentarii (0)

Vom avea cel mult valoare prin utilizarea "Număr" de referință.

public static long toLong(Number number){
    return number.longValue();
}

Acesta funcționează pentru toate tipurile de numere, aici este un test:

public static void testToLong() throws Exception {
    assertEquals(0l, toLong(0));   // an int
    assertEquals(0l, toLong((short)0)); // a short
    assertEquals(0l, toLong(0l)); // a long
    assertEquals(0l, toLong((long) 0)); // another long
    assertEquals(0l, toLong(0.0f));  // a float
    assertEquals(0l, toLong(0.0));  // a double

}
Comentarii (0)
 //Suppose you have int and you wan to convert it to Long
 int i=78;
 //convert to Long
 Long l=Long.valueOf(i)
Comentarii (0)

Am avut o mare problemă cu acest lucru. Am vrut doar să:

thisBill.IntervalCount = jPaidCountSpinner.getValue();

În cazul în care IntervalCount este un Lung, și JSpinner a fost stabilit pentru a reveni un Timp. În cele din urmă a trebuit să scriu această funcție:

    public static final Long getLong(Object obj) throws IllegalArgumentException {
    Long rv;

    if((obj.getClass() == Integer.class) || (obj.getClass() == Long.class) || (obj.getClass() == Double.class)) {
        rv = Long.parseLong(obj.toString());
    }
    else if((obj.getClass() == int.class) || (obj.getClass() == long.class) || (obj.getClass() == double.class)) {
        rv = (Long) obj;
    }
    else if(obj.getClass() == String.class) {
        rv = Long.parseLong(obj.toString());
    }
    else {
        throw new IllegalArgumentException("getLong: type " + obj.getClass() + " = \"" + obj.toString() + "\" unaccounted for");
    }

    return rv;
}

care pare să facă truc. Nici o cantitate de simplu de turnare, niciuna dintre soluțiile de mai sus a lucrat pentru mine. Foarte frustrant.

Comentarii (2)

De îndată ce există doar metoda Mult.valueOf(mult), turnate dininta "lung" va fi făcut în mod implicit în cazul utilizării de Lungă.valueOf(intValue).

Cel mai clar mod de a face acest lucru este de

Integer.valueOf(intValue).longValue()
Comentarii (1)