2010-09-29 32 views
14

Tôi thực sự không biết nếu điều này là có thể hay không. Nhưng tôi đang đánh ở một nơi mà tôi muốn kiểm tra giá trị int là null hay không, để gọi các phương thức khác nhau.Làm cách nào để kiểm tra xem một int không rỗng hay rỗng?

Có cách nào để làm điều đó không?

Thực tế, biến đến từ trình duyệt có giá trị null. Tôi không thể thay đổi tuyên bố int thành Integer. Bởi vì nó có hậu quả riêng.

Mọi đề xuất?

+0

“biến mà xuất phát từ một trình duyệt với một giá trị null” - Ý anh là gì vậy? như được chỉ ra bởi Bozho, điều này rõ ràng là không thể. –

+0

@Konrad Rudolph: Bạn đã bỏ phiếu cho điều này: “biến đó xuất phát từ một trình duyệt có giá trị null”. Tôi giải quyết vấn đề của tôi với sự giúp đỡ của câu trả lời của Bozho "sau đó nó là công cụ chuyển đổi quyết định có nên thiết lập 0" Yea, Int không thể null và không thể của nó. Nhưng một bộ chuyển đổi có thể thay đổi giá trị null thành '0' để gán nó vào một biến int. Bây giờ hãy cho tôi biết lý do bạn bỏ phiếu. Có gì sai với câu hỏi của tôi. Tôi rõ ràng bắt đầu với "Tôi thực sự không biết điều này là có thể hay không". Nó có nghĩa là gì!!! Tôi thực sự không biết b4 tht ... Hãy suy nghĩ hai lần b4 xuống bỏ phiếu –

+0

Tôi đã không downvote. Câu hỏi của bạn có thể đã hợp lệ (tôi không thể nói, nhưng tôi không downvote khi tôi không thể) - Tôi chỉ yêu cầu làm rõ. –

Trả lời

31

int biến không thể null

Nếu một null là để được chuyển đổi sang int, sau đó nó là công cụ chuyển đổi mà quyết định xem có nên thiết lập 0, ngoại lệ ném, hoặc thiết lập một giá trị (như Integer.MIN_VALUE). Hãy thử cắm công cụ chuyển đổi của riêng bạn.

0

Có thể trình duyệt trả về Biểu diễn chuỗi của một số giá trị số nguyên? Thực ra int không thể rỗng. Có thể bạn có thể kiểm tra null, nếu giá trị không phải là null, sau đó chuyển đổi biểu diễn chuỗi thành int.

1

nếu biến int của bạn được khai báo là biến cấp lớp (biến mẫu), nó sẽ được mặc định là 0. Nhưng điều đó không cho biết giá trị được gửi từ máy khách là 0 hay không. có thể bạn có thể có một phương thức setter có thể được gọi để khởi tạo/thiết lập giá trị được gửi bởi máy khách. sau đó bạn có thể xác định giá trị chỉ số của mình, có thể là một số giá trị âm để chỉ ra giá trị rỗng.

2

Tôi nghĩ bạn đang hỏi về mã như thế này.

int count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter")); 
-3

Số nguyên không thể rỗng nhưng có cách thực sự đơn giản để làm những gì bạn muốn làm. Sử dụng câu lệnh if-then trong đó bạn kiểm tra giá trị của số nguyên so với tất cả các giá trị có thể có.

Ví dụ:

int x; 

//Some Code... 

if (x<=0 || x>0){ 
    //what you want the code to do if x has a value 
} else { 
    //what you want the code to do if x has no value 
} 

Disclaimer: Tôi giả định rằng Java không tự động thiết lập các giá trị số là 0 nếu nó không nhìn thấy một giá trị.

+1

Các trường có giá trị mặc định bằng 0; biến cục bộ ** phải ** được gán giá trị hoặc mã sẽ không biên dịch. Điều kiện đó sẽ luôn đúng với bất kỳ mã hợp lệ nào. – kiheru

+0

Thực sự đã làm việc cho tôi. –

3

Tôi nghĩ bạn có thể khởi tạo các biến có giá trị như -1, vì nếu biến số int không được khởi tạo thì không thể sử dụng. Khi bạn muốn kiểm tra xem nó không phải là giá trị bạn muốn, bạn có thể kiểm tra xem nó là -1.

0

int không được rỗng. Nếu bạn không gán bất kỳ giá trị nào cho giá trị mặc định int sẽ là 0. Nếu bạn muốn kiểm tra null thì hãy tạo int làm Integer trong khai báo. Sau đó, đối tượng Integer có thể là null. Vì vậy, bạn có thể kiểm tra nơi nó là null hay không. Ngay cả khi xác thực bean javax, bạn sẽ không thể nhận được lỗi cho chú thích @NotNull cho đến khi biến được khai báo là Số nguyên.

+0

Điều này thực sự là một bình luận, không phải là một câu trả lời. Với đại diện nhiều hơn một chút, [bạn sẽ có thể đăng nhận xét] (// stackoverflow.com/privileges/comment). – manetsus

1
public class Demo { 
    private static int i; 
    private static Integer j; 
    private static int k = -1; 

    public static void main(String[] args) { 
     System.out.println(i+" "+j+" "+k); 
    } 
} 

đầu ra: 0 rỗng -1

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