Portál AbcLinuxu, 4. prosince 2025 05:26
Existuje nějaký nástroj, který by dokázal zobrazit varování pokud je zřejmé, že jsou špatně zadané parametry pro Formatter, viz níže? Přijde mi zbytečné nechávat v programu chyby, které jdou odhalit před jeho spuštěním.
$ vim IllegalFormatConversion.java
public class IllegalFormatConversion {
public static void main(String[] args) {
System.out.printf("%d\n", "string");
}
}
$ javac -Xlint:all IllegalFormatConversion.java && java IllegalFormatConversion
Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2709)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2661)
at java.util.Formatter.format(Formatter.java:2433)
at java.io.PrintStream.format(PrintStream.java:920)
at java.io.PrintStream.printf(PrintStream.java:821)
at IllegalFormatConversion.main(IllegalFormatConversion.java:3)
Řešení dotazu:
Děkuji za tipy. FindBugs to umí:
$ findbugs -textui /path/to/class H C FS: Argument of type String can't be handled by format specifier %d in IllegalFormatConversion.main(String[]) At IllegalFormatConversion.java:[line 3] Warnings generated: 1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.