2017-04-09 3 views
0

ich den folgenden Code, und ich bin eine lästige WarnungDer Wert der lokalen Variablen wird nicht verwendet,

Der Wert der lokalen Variablen bytesread immer nicht verwendet wird

es mich nervt ... manche sagen es ignorieren ... aber ich würde es lieber verstehen, als es blind zu ignorieren.

1) Warum bekomme ich diese Warnung.

2) Wie kann ich den folgenden Code so umschreiben, dass er nicht die Warnung auslöst?

 byte[] buffer = new byte[parameters.getSizeOfPacket() + DATA_PACKET_OVERHEAD_LENGTH]; 
     int bytesRead = -1; 
     //System.out.println("Ready to Read"); 
     while((bytesRead = in.read(buffer)) != -1) { 
       .... } 

Vielen Dank im Voraus.

Eclipse-IDE für Java-Entwickler

Version: Neon.2 Mitteilung (4.6.2)

Build-ID: 20161208-0600

+1

Nun, die Warnung ist selbstbeschreibend. Sie erhalten weiterhin die Nachricht, bis Sie diese Variable in Ihrem Code verwenden. Bisher hast du es nur deklariert und ihm einen Wert zugewiesen –

+0

Nur du verwendest keinen Puffer, Weil der Compiler keine Bedeutung dieser Variable sieht, und es ist eine Gedächtnis-sichere Praxis –

Antwort

0

Sie sollten die lokalen Variablen verwenden, wenn Sie buffer verwenden im Schleifenkörper. Weil, können Sie nur sicher verwenden bytesRead Bytes in der buffer (in der Regel nicht alles wird auf eine schöne Puffergrenze enden).

+0

etwas so? – merkman

+0

DataPacket dataPacket = null; – merkman

+0

if (bytesRead == Parameter.getSizeOfPacket() + DATA_PACKET_OVERHEAD_LENGTH) { – merkman

Verwandte Themen