2014-11-27 20 views
5

Tôi đã tìm kiếm vấn đề này thông qua google nhưng nó quay ra tôi không thể tìm thấy một cách để khắc phục vấn đề này. Trên thực tế tôi có một phương pháp cổ điển main, trong đó tôi chạy một công việc, nhưng sonarqube giữ lặp lại tôi có một phương pháp chính Uncommented được tìm thấy.Làm thế nào để sửa một phương pháp chính Uncommented?

Đây là mã:

 /** 
    * Main : Run MapReduce job 
    * 
    * @param args 
    *   arguments 
    */ 
    public static void main(String[] args) { 
     ExitManager exitManager = new ExitManager(); 
     // run job 
     if (!runJob(args)) { 
      exitManager.exit(1); 
     } 
    } 

Tôi không thấy bất kỳ vấn đề cụ thể ở đây, vì vậy nơi nào vấn đề này đến từ đâu? Bạn có bất kỳ ý tưởng làm thế nào tôi có thể sửa lỗi này?

Cảm ơn.

+0

phương pháp chính Đây là chú thích. Tôi không thấy bất kỳ vấn đề nào. – robert

+0

Tôi không nhận được nó, làm thế nào là nó uncommented có? – hacks4life

+0

Đọc câu trả lời dưới đây, có vẻ như đó là một sự hiểu lầm đơn giản về từ "bình luận". Giống như OP, tôi lấy nó để có nghĩa là phương thức nên có một chú thích, không phải là bình luận để nó không thể thực hiện – Stewart

Trả lời

6

Phương thức chính chưa được xử lý là cảnh báo CheckStyle rằng phương thức main() không được nhận xét. Bạn không được phép gỡ lỗi/thử nghiệm các phương thức main() trong mã của mình.

Bạn có thể loại trừ lớp điểm vào chương trình của bạn sử dụng một cái gì đó như:

<module name="UncommentedMain"> 
    <property name="excludedClasses" value="\.Main$"/> 
</module> 

Xem thêm http://checkstyle.sourceforge.net/config_misc.html#UncommentedMain

+0

Vì vậy, bạn có nghĩa là tôi nên bình luận tất cả các phương pháp chính để nó không thể được thực hiện? – hacks4life

+0

Nó phụ thuộc, là chính() trong câu hỏi một điểm vào chương trình hoặc một phương pháp gỡ lỗi? Nếu đó là điểm vào thì bạn có thể loại trừ nó khỏi các kiểm tra, xem cập nhật của tôi. – Vlad

+0

Tôi hiểu. Bạn đặt những dòng đó ở đâu? Bạn đang sử dụng một tập tin kiến ​​hay một cái gì đó? – hacks4life

3

Từ documentation:

Kiểm tra cho) phương pháp không chú thích chính (.

Lý do: Phương pháp main() thường được sử dụng cho mục đích gỡ lỗi. Khi gỡ lỗi xong, nhà phát triển thường quên xóa phương thức, thay đổi API và tăng kích thước của lớp kết quả hoặc tệp JAR. Ngoại trừ các điểm nhập chương trình thực, tất cả các phương thức main() sẽ bị xóa hoặc nhận xét khỏi các nguồn.

+0

Điều gì sẽ xảy ra nếu chương trình của tôi thực sự là điểm vào và tôi vẫn có cảnh báo này? :) – Line

0

Bạn có thể ngăn chặn các cảnh báo với @SuppressWarnings:

@SuppressWarnings("uncommentedmain") 
public class YourClass { 
    ... 
Các vấn đề liên quan