以下C#代码的Java等价物是什么
本文关键字:等价物 是什么 Java 代码 以下 | 更新日期: 2023-09-27 18:20:57
我有一个有趣的问题。我知道以下C#代码允许用户在参数中输入空值:
public DateTime? date (DateTime dt) {}
在Java中进行编码时,等效项是什么?
如果我回忆正确,java中的每个对象都可以为null。基元类型(int, double, float, char
等)不能为null。要与它们一起使用null,您必须使用它们的对象对应项(Integer, Double, Float...
)
关于日期,java.util.Date是一个Object,因此它可以为null。日历也是如此;GregorianCalendar。
等效代码将类似于:
public Date date(Date dt) throws NullPointerException {
if (dt == null) throw new NullPointerException();
...
}
在C#中你可以使用?以允许基元类型中的null val(例如,强制对象null引用错误)。我不明白为什么这件事会困扰你。例如,如果您在java中需要一个可为null的整数参数,那么您只需要使用java.lang.Integer
而不是基元int
类型。
由于Java中的Date是一个类,因此对它的引用可能已经为null。换句话说;
public Date date(Date dt) { }
是Java的相同版本。
注意,参数在Java中也可以为null,而在C#版本中不能为null。
如何在Java中呈现可为null的基元类型int?说"Java不像C#那样有一个可以为null的特性。"这是一个答案吗?
对于其他类型,如int
和double
,您可以通过使用允许指定为null的盒装版本Integer
和Double
来实现相同的效果。