Long to int

P_H_I_L

Erfahrenes Mitglied
Hallo Zusammen, wie kann ich einen Long Wert nach Int umwandeln? Zurzeit enhält mein Long eine Ganzzahl! zwischen 1-10

nun will ich mittels If-Statement das ganze Abfragen...

so siehts aus:
Long PdfID = new Long(0);

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
PdfID = Long.decode(req.getParameter("docID"));


kann ich nun auch im if-statement auf den long abfragen? oder muss ich erst umwandeln,..
habe keine ahnung wie ich dieses "kleine" Problem lösen soll :)

If(PdfID = 1){
//tue irgendetwas...
}
 
If(PdfID = 1){
//tue irgendetwas...
}
So schon gar nicht, da du hier zuweist ;)

Der Java-Compiler wandelt die Werte augenblicklich entsprechend um, so wie dieser kleine Test auch zeigt:
Java:
public class LongToInt {
	public static void main( String[] args ) {
		long value = new Long( 10 );
		System.out.println(
				(int) value == 10
			);
		System.out.println(
				value == 10
			);
	}
}
Code:
true
true

Wobei unterschieden werden sollte: Ersteres vergleicht zwei Integerwerte (typecasted long to int) mit int, zweiteres long mit typecasted int to long.
 
das habe ich jetzt nicht verstanden *G*
geht das jetzt gar nicht oder wie? bin völlig überfordert *G*
sorry
 
Kurz: Ja, es funktioniert, wobei der Vergleich entweder
Java:
if ( PdfID == 1 ) { /* ... */ }
oder korrekter
Java:
if ( PdfID == (long) 1 ) { /* ... */ }
lauten sollte. Letzteres ist aber unnötige Schreibarbeit, da der Compiler dies automatisch macht.

Alternativ kann auch
Java:
if ( (int) PdfID == 1 ) { /* ... */ }
verwendet werden, was jedoch nicht immer zu korrekten Ergebnissen führt, da von größerer Menge zu kleinerer Menge "gekürzt" wird.
 
bei mir funktioniert das nicht :-(

und wenn ich das ganze anstatt long mit groß Integer mache...
wie kann ich dann einen großen Integer in ein int umwandeln? geht das?
 
Machs doch so:
Java:
HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
long pdfID = Long.parseLong(req.getParameter("docID"));

if(pdfID == 1L){

}

Das L hinter der Zahl sagt aus dass es ein long ist, wenn man dies weglässt ist es ein int.
 
Umformen in einen anderen Datentyp geht immer - jedoch solltest du beachtest, dass wenn man nun zB 15.96 von double in int umformt nur noch 15 übrig bleibt;)

Und dieses Umformen geht nach dem Prinzip wie es maeTimmae bereits gezeigt hat. Was geht denn bei dir nicht? Nur zu sagen "es klappt nicht" sagt nicht viel aus, wir sehn ja alle nicht deinen Bildschrim;)
 
Zurück