vscodeでjavaを実行したのですが、以下のメッセージが出てしまい、解決できません。ネットで検索しましたが、有効な解決策が見つからず、java初心者ですのでどなたか解決方法教えてください。
該当のソースコード
java
1class mains { 2 public static void main(String[] args) { 3 Thread[] th = new Thread[30]; 4 Date date = new Date(); 5 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 6 Calendar calendar = Calendar.getInstance(); 7 for (Thread s : th) { 8 s.start(); 9 for (int i = 0; i < 30; i++) { 10 th[i] = new Thread(); 11 int[] nums = new Random().ints(30, 2, 11).toArray(); 12 Arrays.sort(nums); 13 calendar.setTime(date); 14 calendar.add(Calendar.SECOND, nums[i]); 15 Date d1 = calendar.getTime(); 16 17 System.out.printf("%d %s %s %s %d %s %s\n", s.getId(), "start", sdf.format(date), "wait", nums[i], 18 sdf.format(d1), "end"); 19 } 20 } 21 } 22}
発生したメッセージ
java
115 start Exception in thread "main" java.util.IllegalFormatConversionException: T != java.lang.String 2 at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4522) 3 at java.base/java.util.Formatter$FormatSpecifier.printDateTime(Formatter.java:3085) 4 at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:2991) 5 at java.base/java.util.Formatter.format(Formatter.java:2769) 6 at java.base/java.io.PrintStream.format(PrintStream.java:1222) 7 at java.base/java.io.PrintStream.printf(PrintStream.java:1118) 8 at mains.main(ThreadLearn.java:30)
試したこと
System.out.printfの%dから%fに変更して実行した。(いろいろな試し方が分からなかった)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。