2012-09-24 25 views
6

Tôi cần phải biết làm thế nào để khắc phục những ghi chú lỗi:biên dịch lại với -Xlint: deprecation để biết chi tiết

Note: Summer.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 

Đây là mã của tôi:

import java.util.Calendar; 
import java.util.*; 

class Summer 
{ 
    public static void main(String[] args) 
    { 
     Date d1 = new Date(); 
     Date j21 = new Date(d1.getYear(), 6, 21); 
     if(d1.before(j21)) { 
      long diff = j21.getTime() - d1.getTime(); 
      diff = diff/(1000 * 60 * 60 * 24); 
      System.out.println("There are " + diff + " days until June 21st"); 
     } 
     else { 
      long diff = d1.getTime() - j21.getTime(); 
      diff = diff/(1000 * 60 * 60 * 24); 
      diff = 365 - diff; 
      System.out.println("There are " + diff + " days until June 21st"); 
     } 
    } 
} 

Trả lời

1

Như thông báo nói, bạn cần phải biên dịch nó với dòng switch -Xlint lệnh để lệnh javac như sau:

C:\Temp>javac -Xlint Summer.java 
Summer.java:22: warning: [deprecation] getYear() in java.util.Date has been deprecated 
     Date j21 = new Date(d1.getYear(), 6, 21); 
         ^
Summer.java:22: warning: [deprecation] Date(int,int,int) in java.util.Date has been deprecated 
     Date j21 = new Date(d1.getYear(), 6, 21); 
      ^
2 warnings 
+0

How are you biên dịch mã của bạn, từ dòng lệnh hoặc từ môi trường phát triển jGrasp? – Vikdor

+0

Tôi mở một java mới trong jGrasp và bắt đầu làm việc mã của tôi trong đó. Sau đó, tôi nhấn nút biên dịch tập tin để kiểm tra lỗi. –

+0

Không chắc chắn cách bạn sẽ bật cảnh báo 'deprecation' trong jGrasp.Bạn có thể cần phải xem xét hướng dẫn sử dụng jGrasp cho việc này. Nếu đó là nhật thực, bạn sẽ vào Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> API không được chấp nhận và bị hạn chế và thiết lập mức độ nghiêm trọng để cảnh báo/lỗi. – Vikdor

5

đó là một cảnh báo. Bạn đang sử dụng cuộc gọi hoặc đối tượng hàm bị phản đối. Bạn có thể biên dịch lại như vậy để tìm ra nơi xảy ra:

javac -Xlint:deprecation Summer.java 

Nói chung, bạn nên sử dụng thư viện không dùng nữa. Họ có thể biến mất trong bản phát hành kế tiếp.

+0

Cung cấp một số thông điệp cảnh báo, nhưng chạy chương trình một cách chính xác. Cảm ơn bạn –

-1

Đó không phải là lỗi. Chỉ là cảnh báo. Những điều đó sẽ không ảnh hưởng đến chương trình của bạn. Nhưng vì bạn đang sử dụng lớp util deprecated Date trong tương lai nó có thể ảnh hưởng đến chương trình của bạn.

Nó là tốt hơn để sử dụng java.util.Calendar thay vì java.util.Date này cung cấp nhiều chức năng giống như ngày và someextra chức năng cũng

6

Đây không phải là một lỗi, một thông điệp cảnh báo của nó.

Chương trình của bạn sẽ chạy khi bạn đã viết.

lý do tại sao trình biên dịch cung cấp cho bạn cảnh báo này là do bạn đã sử dụng cuộc gọi hàm không được chấp nhận.

bởi biên dịch lại với -Xlint, trình biên dịch có nghĩa là thông báo cho bạn rằng bạn cần phải biên dịch lại chương trình của bạn như

javac -Xlint abc.java 

nếu bạn làm như vậy, trình biên dịch sẽ cho mà phương pháp này bị phản đối, do đó bạn có thể loại bỏ những.

"về cơ bản nếu một số phương pháp được chấp nhận, một thực hiện tốt hơn được cung cấp" để trình biên dịch bật lên một cảnh báo thông báo rằng một cái gì đó tốt hơn đã được cung cấp cho những gì bạn đang cố gắng để sử dụng"

PS: nó luôn luôn khuyến khích không sử dụng các phương pháp không dùng nữa.

Hy vọng nó giúp :-)

0
Note: filename.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

cho ERROR này. nhưng thực sự nó là một cảnh báo cho thiếu try {} catch() {} chặn bạn có thể sử dụng để xem mã thực hiện b y văn bản báo cáo kết quả sau

javac -Xlint:unchecked filename.java 

nó sẽ hiển thị không được kiểm soát tất cả các trường hợp ngoại lệ mà phải bắt qua người sử dụng xác định hoặc hệ thống xác định đang ngoại lệ

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