Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA] tipi incompatibili

    Salve a tutti.
    Sono newbie in Java, ed ho un problema nel creare un oggetto che mi servirà per i dati raccolti dal DB.
    Il compilatore mi segna questi due errori, ma non capisco il perchè, ma soprattutto come risolverli, dato che li ho inizializzati correttamente(credo...)
    Molto probabilmente si tratta di una banalità che con la poca esperienza che ho non riesco ad individuare.
    grazie a tutti.

    codice:
    AvailModel.java:16: incompatible types
    found   : int
    required: java.lang.Integer
                            total_rooms = rs.getInt("single");
                                                   ^
    AvailModel.java:17: incompatible types
    found   : float
    required: java.lang.Float
                            price_room = rs.getFloat("double");
                                                    ^
    2 errors
    il file .java invece l'ho scritto così:

    codice:
    import java.sql.*;
    
    public class AvailModel {
    	private Date date;
    	private Integer total_rooms;
    	private Float price_room;
    
    
    		//costructor	
    		public AvailModel(ResultSet rs) throws SQLException {
    			
    			
    			date = rs.getDate("date");
    			total_rooms = rs.getInt("single");
    			price_room = rs.getFloat("double");
    			}
    			
    		public void setDate(Date date) {
    			this.date = date;
    		}
    		
    		public void setTotal_rooms(Integer total) {
    			this.total_rooms = total; 
    			}
    			
    		public void setPrice_room(Float price) {
    			this.price_room = price;
    			}
    
    		
    		public Date getDate() {
    			return date;
    			}
    			
    		public Integer getTotal_rooms() {
    			return total_rooms;
    			}
    			
    		public Float getPrice_room() {
    			return price_room;
    			}
    
    	}

  2. #2
    Il problema sta nel fatto che in java sono supportati si ai tipi primitivi (int,float,double...) sia delle classi wrapper (contenitori) che li rappresentato.
    nell'istruzione
    codice:
    total_rooms = rs.getInt("single");
    Tu stai cercando di assegnare ad una variabile di tipo Integer un valore di ritorno di tipo int e ovviamente il compilatore non è d'accordo.La cosa si risolve semplicemente creando un Integer dal valore di ritorno di getInt(),uno dei costruttori di Integer prevede ovviamente un int come paramentro.
    Una cosa tipo
    codice:
    total_rooms = new Integer(rs.getInt("single"));
    Il discorso per il float è ovviamente del tutto analogo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    grazie mille.
    Però cambia quell'avatar, è abbominevole!

  4. #4
    vediamo se ho capito bene...
    Allora i valori primitivi sono contenuti in queste classi dette wrapper (per gli Int è Integer) che li permettono di implementare metodi tipo il casting??

  5. #5
    Originariamente inviato da Sandrocchio_0.1
    vediamo se ho capito bene...
    Allora i valori primitivi sono contenuti in queste classi dette wrapper (per gli Int è Integer) che li permettono di implementare metodi tipo il casting??
    Il casting non è un metodo!
    No io la metterei così:queste classi contenitore per i tipi primitivi si rendono necessarie per una questione di object orientation del linguaggio (di fatto in un linguaggio strettamente ad oggetti i tipi primitivi non dovrebbero nemmeno esistere perchè non sono oggetti e in un tale linguaggio qualsiasi entità o è un oggetto o è un metodo di un'oggetto),inoltre servono per rendere possibile l'uso di classi come Vector che possono contenere collezioni di oggetti di qualunque tipo purchè derivanti da Object (e i tipi primitivi non derivano da object).Tolte queste cose Integer,Float etc..non sarebbero necessarie
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    ok, I got it!
    Grazie mille e buon anno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.