2015-08-10 26 views
8

Quando lavoro con classi di IO come java.util.Scanner o java.io.BufferedReader, Eclipse visualizza un avviso Resource leak: 'suchAndSuch' is never closed. Come posso fare in modo che Eclipse mostri questo avviso per la mia classe quando non è chiuso?Forza avviso quando la classe non è chiusa

Quello che voglio sapere è se c'è un'interfaccia o qualcosa che devo implementare per rendere la mia classe trattata come le classi IO, in modo che sia indipendente da qualsiasi IDE, ad es. la riga di comando javac visualizza anche un avviso quando una risorsa non viene chiusa.

+1

uso Pluggable annotazione processore API http://stackoverflow.com/a/24981511/3651739 –

+2

Hai provato attuazione l'interfaccia 'java.io.Closeable' nella classe di cui vuoi che Eclipse ti avvisa? – JonK

+0

È sufficiente che la classe implementa 'java.io.Closeable'? Vedi http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-avoiding_resource_leaks.htm. –

risposta

2

Eclipse dà avviso "mai chiuso" per qualsiasi classe che implementa java.io.Closeable

class X implements Closeable { 
    @Override 
    public void close() throws IOException { 
    } 
} 

... 
    public static void main(String[] args) throws IOException { 
     X x = new X(); <-- Eclipse warning 
    }