Làm cách nào để tắt thông báo “Quyền truy cập có thể là gói riêng tư” trong IntelliJ?


79

Đang phát triển một API, thông báo cảnh báo "Access có thể là gói-gói" trong các lớp Java có thể thực sự khó chịu.

Tôi đã dành thời gian xem qua các cài đặt để tìm cách tắt thông báo này nhưng không có bất kỳ phát hiện nào. Bất kỳ ý tưởng làm thế nào để vô hiệu hóa thông báo?


6
Của tôi đang cho tôi biết một phương thức có thể là gói riêng tư, nhưng khi tôi làm như vậy, các vị trí khác trong mã của tôi nơi nó được gọi sẽ không hoạt động (như bạn mong đợi), vậy tại sao nó lại nói với tôi rằng nó có thể là gói -riêng tư? Nó không thể được nếu tôi đang sử dụng nó ở nơi khác. Không phải là một gợi ý rất hữu ích từ IDE ở đây.
Marc Fearby

Câu trả lời:


54

Quy tắc kiểm tra là "Quyền truy cập khai báo có thể yếu hơn" và có hai tùy chọn có thể bị tắt "Đề xuất mức hiển thị gói-riêng tư ..."


67

Đi đến quy tắc Settings → Editor → Inspectionssau đó Java → Declaration redundancy → Declaration access can be weaker.
Tại đây, bạn có thể vô hiệu hóa nó hoàn toàn hoặc chọn các tùy chọn đề xuất trên khung bên phải:

nhập mô tả hình ảnh ở đây


62

Để tắt tùy từng trường hợp, hãy sử dụng

@SuppressWarnings("WeakerAccess")

6
Đây là câu trả lời tốt nhất. Bằng cách làm này, bạn thực sự ghi lại ý định của mình, thay vì để IDE che đậy mọi thứ cho bạn
rath 8/1018

3
Tôi đã nói rằng tuyên bố một phương pháp như công khai đã ghi lại ý định của bạn. Nhưng tôi hiểu rõ. Nếu bạn nói điều đó hai lần, thì họ sẽ bắt đầu tin rằng bạn thực sự có ý đó.
Michael Kay,

1
Nó thực sự là một khuôn mẫu cũ để đặt mọi thứ ở chế độ riêng tư. Người dùng TDD sẽ hiểu điều này hơn bất kỳ ai. Về cơ bản, trừ khi bạn đang viết mã để phân phối và cần bảo vệ nội bộ khỏi người dùng của bạn, việc đặt mọi thứ ở chế độ riêng tư, khiến việc kiểm tra và cấu trúc lại khó khăn hơn. Với suy nghĩ đó, Mayne không phải là một ý tưởng tồi khi mở rộng IDE.
Brill Pappin

Ngay cả khi đó, tôi khá chắc chắn rằng bạn có thể định cấu hình một số trình làm mờ để thay đổi quyền truy cập cho bạn.
Máy tính Trái đất

@BrillPappin Bạn có bất kỳ nguồn nào mà tôi có thể đọc được về ý tưởng rằng giữ mọi thứ ở mức truy cập yếu nhất có thể (không phải "đặt mọi thứ ở chế độ riêng tư", mà tôi chắc rằng không ai từng ủng hộ) là một mô hình phản đối không? Và làm cho việc tái cấu trúc khó khăn hơn? Theo quan điểm của tôi, việc công khai mọi thứ sẽ dần biến mật mã thành một tô mì spaghetti, nơi mọi thứ phụ thuộc vào mọi thứ.
SantiBailors

8

Di chuyển con trỏ tới public, nhấn Alt+ Entervà chọn một trong các tùy chọn:
nhập mô tả hình ảnh ở đây


2
Điều thú vị là tôi không có tùy chọn "Tắt kiểm tra" khi chọn "Đặt 'gói-riêng tư'". (Có thể là tôi đã tắt một cài đặt khác nên không thấy tùy chọn đó.) Tôi chắc rằng câu trả lời của bạn có hiệu quả. Cảm ơn bạn. mboss 'giải pháp đã giúp tôi.
Thomas Zuberbuehler

Làm việc cho tôi :-)
mrek

3
Điều này sẽ không vô hiệu hóa tất cả các đề xuất "Quyền truy cập khai báo có thể yếu hơn", không chỉ các đề xuất đề xuất gói riêng tư?
Joe White

4

Một giải pháp khác chưa được đề cập cho đến nay: nếu bạn có một phương thức được khai báo công khai và IDE cho bạn biết rằng không có tham chiếu nào đến phương thức từ bên ngoài gói, thì có lẽ bạn cần thêm một trường hợp thử nghiệm gọi phương thức đó từ bên ngoài gói. Nói cách khác, hãy coi cảnh báo như báo hiệu sự vắng mặt của một trường hợp thử nghiệm cho một phương pháp công khai.


Vì thông thường lớp thử nghiệm nằm trong cùng một gói với lớp đang thử nghiệm, điều này sẽ không thực sự thay đổi bất cứ điều gì.
Stefan D.

1
@Stefan: Thông thường các bài kiểm tra đơn vị nằm trong cùng một gói, nhưng một API công khai nên được kiểm tra trong ví dụ như kiểm tra tích hợp hoặc chấp nhận và nên sử dụng API công khai như một ứng dụng khách thực sự sẽ làm. Từ bên ngoài, tôi nghĩ.
jazz64
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.