[英]What is the Java equivalent for the following C# code?
我有一個有趣的問題。 我理解以下C#代碼允許用戶在參數中輸入空值:
public DateTime? date (DateTime dt) {}
用Java編碼時的等價物是什么?
如果我沒記錯,java中的每個對象都可以為空。 原始類型( int, double, float, char
等...)不能為null。 對於使用null,你必須使用它們的Object對應物( Integer, Double, Float...
)
關於日期,java.util.Date是一個Object,因此它可以為null。 Calendar&GregorianCalendar也是如此。
等效代碼將是這樣的:
public Date date(Date dt) throws NullPointerException {
if (dt == null) throw new NullPointerException();
...
}
在C#中你可以用嗎? 允許原始類型中的null值(例如,強制執行對象空引用錯誤)。 我不明白為什么這件事困擾你。 如果你需要java中的可以為null的整數參數,你只需要使用java.lang.Integer
而不是原始的int
類型。
由於Java中的Date是一個類,因此對它的引用可能已經為null。 換一種說法;
public Date date(Date dt) { }
...是Java的版本。
請注意,該參數在Java中也可以為null,而在C#版本中則不能。
如何在Java中呈現可空的原始類型int? 他說:“Java沒有C#所具有的可空功能。” 這是答案嗎?
Java不支持用戶定義的值類型(例如,不能為null的類型)。 在這方面,Java DateTime對象已經通過允許指定null來支持可空。
對於其他類型,例如int
和double
,可以通過使用允許賦值為null的盒裝版本Integer
和Double
來實現相同的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.