Portál AbcLinuxu, 10. května 2025 04:46
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.