On m'a donné ce code source et on m'a demandé de le compiler: il échoue avec l'erreur "types inconvertibles trouvés: int required: java.lang.Short".types inconvertibles trouvés: int requis: java.lang.Short
Le code effectue un décalage bit à bit pour convertir certaines valeurs hachées (je pense) en nombres entiers. Le compilateur échoue lors de la rencontre de cette instruction "s >>> = 5;"
... try {...
// Query data
SelectQuery = "select "
+ "... "
+ "from "
+ "subscrib a, "
+ "account b "
+"where "
+"a.cardid>0 "
+ "and "
+ "b.camc_card_id>0 "
+ "and "
+ "a.cardid=b.camc_card_id "
+"and "
+ "a.cardid >= ? and a.cardid <= ?";
CApStmt = CAconn.prepareStatement(SelectQuery);
// We set the card id ranges
CApStmt.setLong(1, mincardversion[0]);
CApStmt.setLong(2, maxcardversion[0]);
CArs = CApStmt.executeQuery();
while (CArs.next()) {
// We retrieve all columns from source table
long SUBID = CArs.getLong(1);
Date NEWCARDDATE = CArs.getDate(2);
int CSSNUMBER = CArs.getInt(3);
String ZIPCODE = CArs.getString(4);
int SUBREGIONS = CArs.getBinaryStream(5).read();
int CALLBACKDAY = CArs.getBinaryStream(6).read();
/*
* This field contains two-byte bitmap with the following
* format: Bits 15-11 : Hour <- Bits 10-5 : Minutes <- Bits
* 4-0 : Seconds/2
*/
Short s = CArs.getShort(7);
/* Bits 0-4 : Seconds (bitwise AND operation) */
int secs = s & 0x1F;
int seconds = secs/2;
/* Bits 5-10 : Minutes (bitwise AND operation) */
s >>>= 5;
int min = s & 0x1F;
int minutes = min * 60;
..........
L'auteur original du code jure haut et bas qu'il a utilisé pour compiler mais ne peut pas m'aider. Je sais juste assez pour compiler une classe ou construire un paquet.
Notez que j'ai supprimé la requête SQL de cet extrait de code en raison de sa taille ... Une idée de ce qui pourrait être le problème?
Merci. 'short' au lieu de' Short' est tout ce qu'il a fallu. – Chris