興味深い質問があります。私は、次のC#コードで、ユーザーがパラメータにnull値を入力できることを理解しています。次のC#コードでJavaと同等のものは何ですか?
public DateTime? date (DateTime dt) {}
Javaでコーディングするときは、
興味深い質問があります。私は、次のC#コードで、ユーザーがパラメータにnull値を入力できることを理解しています。次のC#コードでJavaと同等のものは何ですか?
public DateTime? date (DateTime dt) {}
Javaでコーディングするときは、
私が正しく思い出すと、javaの各オブジェクトはnull可能です。 プリミティブ型(int, double, float, char
など...)はnullにできません。 nullを使用するには、オブジェクト対応(Integer, Double, Float...
)を使用する必要があります。
日付に関しては、java.util.Dateはnullである可能性があります。カレンダー& GregorianCalendarでも同じです。あなたが使用することができますC#では
public Date date(Date dt) throws NullPointerException {
if (dt == null) throw new NullPointerException();
...
}
:
同等のコードのようなものでしょうか?プリミティブ型でnull valを許可する(オブジェクトのnull参照エラーを強制するなど)なぜこのことがあなたを悩ませるのか分かりません。たとえば、javaでnull可能な整数パラメータが必要な場合は、プリミティブint
タイプではなく、java.lang.Integer
を使用するだけです。
この質問はC#とJavaの構文null可能なパラメータを設定するためのベストプラクティスを理解するだけです。あなたの答えに多くの感謝。 – AWb
C#とjavaはやや似ていますが、依然として2つの異なる言語です。 Javaでは、C#とviceversaには対応していないものがいくつかあります。私の提案は、構文特有の問題を比較するのではなく、それらを機能上で比較することです。良い一日を。 – BigMike
実際にNullPointerExceptionをスローするのは実行時エラーですが、nullを渡そうとするとC#構文がコンパイルエラーを引き起こします。むしろ異なるもの。 –
How to present the nullable primitive type int in Java?によれば、「JavaにはC#の持つnullable機能はありません」と記載されています。それは答えですか?
Javaでは、ユーザー定義の値型(nullにはできない型など)はサポートされていません。これに関して、Java DateTimeオブジェクトは、すでにヌルを割り当てることができるため、nullableをサポートしています。このようint
やdouble
などの他のタイプについては、
、あなたはnullを割り当てることが許可されている箱入りバージョンInteger
とDouble
を使用して同じ効果を得ることができます。
JavaのDateはクラスであるため、その参照はすでにnullになっている可能性があります。言い換えると;
public Date date(Date dt) { }
...は、Javaの同じバージョンです。
パラメータは、Javaではnullでもかまいません。このパラメータはC#バージョンでは使用できません。
いいえ、dtパラメータをチェックして、与えられた値がnullの場合はNullPointerExceptionをスローする必要があります(もちろん私は冗談を言っています:P) – BigMike
私はあるとは思わない。 –
このメソッドはnull可能なDateTimeを返しますが、その引数はNULL可能ではありません。 –
'c#'の例では、null可能なDateTimeを返すことができます。パラメータとして渡されるDateTimeはnullにはできません。 –