Ich wurde diesen Quellcode gegeben und aufgefordert, es zu kompilieren: es schlägt mit dem Fehler "inconvertible Typen gefunden: int erforderlich: java.lang.Short".inconvertible Typen gefunden: int erforderlich: java.lang.Short
Der Code tut eine bitweise Verschiebung, um einige Hashwerte (ich denke) in Ganzzahl zu konvertieren. Der Compiler schlägt fehl, wenn diese Anweisung "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;
..........
Der ursprüngliche Autor des Codes schwört auf und ab, dass es kompiliert hat, kann mir aber nicht helfen. Ich kenne gerade genug, um eine Klasse zu kompilieren oder ein Paket zu bauen.
Beachten Sie, dass ich die SQL-Abfrage aus diesem Code-Snippet aufgrund seiner Größe entfernt ... Jede Idee, was könnte das Problem sein?
Vielen Dank. "Kurz" statt "Kurz" ist alles, was es brauchte. – Chris