2011-07-20 27 views
43

Chúng tôi sử dụng phản ánh rộng rãi để đặt giá trị trường lớp trong mã của chúng tôi. Các trường được truy cập trong mã nhưng chúng không bao giờ được gán ngoại trừ thông qua sự phản chiếu. Vì vậy, IDEA hiển thị cảnh báo "không bao giờ được chỉ định". Nếu tôi yêu cầu IDEA ngăn chặn việc kiểm tra, nó sẽ chènNgăn chặn "biến không bao giờ được chỉ định" cảnh báo trong IntelliJ IDEA

@SuppressWarnings({"UnusedDeclaration"}) 

nhưng điều này cũng vô hiệu hóa việc kiểm tra xem trường đó có được sử dụng hay không, mà chúng tôi không muốn.

Có thể nào chỉ vô hiệu hóa việc kiểm tra "không được chỉ định" và bỏ chọn "không được sử dụng" cho các trường cụ thể không?

Phiên bản IDEA là 10.5

+0

Có lẽ bạn có thể thay đổi mã ví dụ bằng cách chỉ định giá trị, vì vậy cảnh báo sẽ biến mất? –

+3

có hoạt động, nhưng không cho thấy ý định về những gì tôi cố gắng đạt được bằng cách chỉ định ví dụ: null –

+0

sao tôi không thấy cảnh báo này? bạn có thể đưa ra một mẫu mã đơn giản không? – irreputable

Trả lời

46

Bạn có thể sử dụng chú thích để đánh dấu nó là trường được chèn. (tương tự như cách nó sẽ xử lý @EJB). Kiểm tra IntelliJ (ít nhất là với phiên bản 10.5) cho phép bạn định cấu hình chú thích của riêng mình để đánh dấu các trường đang được tiêm.

Chọn Phân tích, kiểm tra mã từ trình đơn và sau đó chuyển đến kiểm tra khai báo chưa sử dụng và bạn có thể định cấu hình chú thích.

+1

Làm việc tốt, cảm ơn. Các trường của tôi đã được chú thích bằng các chú thích '@ XmlElement' và' @ XmlAttribute' của JAXB, vì vậy tôi thậm chí không phải thay đổi nguồn của mình! –

+0

Jeff, bạn có thể giải thích ý của bạn là "bạn có thể định cấu hình chú thích" không. Tôi đang chạy IntelliJ 13 và tôi có thể thực hiện phân tích mã kiểm tra và tìm thấy "các khai báo chưa sử dụng" (được chú thích là @Requirement).Tôi cần phải làm gì để thông báo cho IntelliJ rằng @Requirement có nghĩa là giá trị sẽ được bơm vào thời gian chạy? – William

+6

Trong 13.1: Tệp> Cài đặt. Kiểm tra: Tuyên bố dự phòng> Biểu tượng chưa sử dụng. Định cấu hình chú thích ... – BennyMcBenBen

4

Không, có vẻ như kiểm tra của IDEA không phải là hạt mịn. Ngay cả với các trường phụ thuộc dựa trên chú thích được chèn, cùng một cảnh báo có thể bị chặn đối với các trường được chú thích bằng @Inject. Tự động cảnh báo "không được sử dụng" bị chặn.

Tôi vừa thử chạy FindBugs-IDEA chống lại lớp học và không có cảnh báo hoặc lỗi nào được nêu ra.

22
  1. chạy phân tích: Phân tích> Inpect Mã ...
  2. Nhấp chuột phải vào Tuyên bố không sử dụng (dưới nút Tuyên bố cây dư thừa)
  3. Bấm vào "Configure Chú thích ..."
  4. Thêm com .google.google.inject.Inject và javax.inject.Inject
+0

Tôi thấy điều này rõ ràng hơn và dễ bị tổn thương hơn. Thx – Snicolas

+1

Tôi rất thích phương pháp này, nhưng lưu ý rằng nó sẽ kích hoạt "kiểm tra lại mã" có thể mất một lúc để hoàn thành tùy thuộc vào kích thước của cơ sở mã của bạn. –

+2

Tôi phải: 3. Nhấp vào "Chỉnh sửa Cài đặt" 4. Nhấp vào "Nhập điểm" 5. Nhấp vào "Chú thích ...". Tôi tin giao diện người dùng đã thay đổi kể từ năm 2014 :) –

9

Để định cấu hình chú thích trong Android Studio 1.1.0 sau khi kiểm tra mã của bạn, hãy nhấp vào Không khai báo -> Chỉnh sửa cài đặt -> Định cấu hình chú thích.

Android Studio 1.1.0

Android Studio 1.1.0

+2

Nhưng tôi phải làm gì sau khi nhấp vào "Định cấu hình chú thích ..."? Không có câu trả lời nào khác phù hợp với tôi. –

+0

@AdamJohns bạn đã tìm ra? – amadib

4

Nếu bạn bật lên những hành động gợi ý cửa sổ (alt + Enter trên máy Mac), nó sẽ đề nghị bạn để ngăn chặn cảnh báo cho Tiêm chú thích

+0

điều này giải quyết được vấn đề cho tôi – Tomasz

-3

có thể là private var được uninitialized Tôi không bắt đầu var trong androidStudio, vì vậy hãy cho tôi thấy thông báo "" không bao giờ được gán ""

Các vấn đề liên quan