主要问题已经回答了。Calendar.get需要一个as 参数,但您的代码从字符串 concatenationint
传递一个。String
Calendar.DATE+ " / " + Calendar.MONTH + " / " + Calendar.YEAR
回答关于笔记的问题
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
它告诉您,当您将额外选项添加-Xdiags:verbose
到javac
. 在具体示例中:
没有-Xdiags:verbose
:
CalendarClass.java:N: error: incompatible types: String cannot be converted to int
System.out.println(cal.get(Calendar.DATE+ " / " + Calendar.MONTH + " / " + Calendar.YEAR ));
^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error
该消息指向+
字符串连接中的最后一个。
与-Xdiags:verbose
:
CalendarClass.java:N: error: method get in class Calendar cannot be applied to given types;
System.out.println(cal.get(Calendar.DATE+ " / " + Calendar.MONTH + " / " + Calendar.YEAR ));
^
required: int
found: String
reason: argument mismatch; String cannot be converted to int
1 error
消息指向方法cal.get
。
对我来说,后者更有用。这就是为什么我总是有那个额外的选项集。
如何设置编译器选项?
这取决于您的编译方式。直接使用javac
它就像将编译器选项放在javac
命令行中一样简单:
javac -encoding UTF-8 -Xlint:deprecation -Xdiags:verbose -cp .;./depJars/* CalendarClass.java
使用 IDE 请查看 IDE 的文档,了解如何将额外选项设置为javac
.