Tôi nhận được một thông báo khi tôi biên dịch mã của mình:
Note: H:\Project2\MyGui2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Làm cách nào để biên dịch lại với -Xlint:unchecked
?
Tôi nhận được một thông báo khi tôi biên dịch mã của mình:
Note: H:\Project2\MyGui2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Làm cách nào để biên dịch lại với -Xlint:unchecked
?
Câu trả lời:
Chỉ định nó trên dòng lệnh cho javac:
javac -Xlint: bỏ chọn
Hoặc nếu bạn đang sử dụng Ant, hãy sửa đổi mục tiêu javac của bạn
<javac ...>
<compilerarg value="-Xlint"/>
</javac>
Nếu bạn đang sử dụng Maven, hãy định cấu hình điều này trong maven-compiler-plugin
<compilerArgument>-Xlint:unchecked</compilerArgument>
<compilerArgument>
đi dưới <configuration>
không thuộc <compilerArguments> `' yếu tố. Tôi thật ngốc.
Đối với IntelliJ 13.1 , đi tới File-> Settings-> Project Settings-> Compiler-> Java Compiler, và ở phía bên phải, để Additional command line parameters
nhập "-Xlint:unchecked"
.
Trong dự án gradle, bạn có thể thêm tham số biên dịch này theo cách sau:
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked"
}
}
Compile
đã được đổi tên JavaCompile
, vì vậy nó làtasks.withType(JavaCompile) { ... }
allprojects { // ... }
Tôi biết điều đó nghe có vẻ kỳ lạ, nhưng tôi khá chắc chắn đây là vấn đề của bạn:
Ở đâu đó trong MyGui.java bạn đang sử dụng một bộ sưu tập chung mà không chỉ định loại. Ví dụ: nếu bạn đang sử dụng ArrayList ở đâu đó, bạn đang làm điều này:
List list = new ArrayList();
Khi nào bạn nên làm điều này:
List<String> list = new ArrayList<String>();
Có một cách khác cho gradle:
compileJava {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
Đối với Android Studio, hãy thêm phần sau vào build.gradle
tệp cấp cao nhất của bạn trong allprojects
khối
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
Trong CMD, hãy viết:
javac -Xlint:unchecked MyGui2.java
nó sẽ hiển thị danh sách các hoạt động không được kiểm tra hoặc không an toàn.
Nếu bạn làm việc với một IDE như NetBeans, bạn có thể chỉ định Xlint:unchecked
tùy chọn trình biên dịch trong các thuộc tính của dự án của bạn.
Chỉ cần vào cửa sổ dự án, nhấp chuột phải vào dự án và sau đó nhấp vào Properties
.
Trong cửa sổ xuất hiện, hãy tìm kiếm Compiling
danh mục và trong hộp văn bản có nhãn, Additional Compiler Options
hãy đặt Xlint:unchecked
tùy chọn.
Do đó, cài đặt sẽ vẫn được đặt cho mỗi khi bạn biên dịch dự án.
Một cách rõ ràng hơn để chỉ định các đối số của trình biên dịch Gradle như sau:
compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']
cách khác để biên dịch bằng -Xlint: bỏ chọn qua dòng lệnh
javac abc.java -Xlint:unchecked
nó sẽ hiển thị các cảnh báo không được kiểm tra và không an toàn.
FYI vào các cài đặt này đã thay đổi đối với IntelliJ 15, mới và được cải tiến để chôn sâu hơn nữa!
Bây giờ là: Tệp> Cài đặt khác> Cài đặt mặc định> 'Xây dựng, Thực thi, Triển khai'> Trình biên dịch> Trình biên dịch Java
Và trong Tham số dòng lệnh bổ sung, giống như trước, hãy viết "-Xlint: chưa được kiểm tra".
-Xlint:unchecked
vào dòng lệnh bạn đang thực thi, giống như thông báo cho biết.