简体   繁体   中英

How to check a Long for null in java

How do I check a Long value for null in Java?

Will this work?

if ( longValue == null) { return blah; }

Primitive data types cannot be null . Only Object data types can be null .

There are 8 primitive types in Java:

Data Type Size Description
byte 1 byte Int8
short 2 bytes Int16
int 4 bytes Int32
long 8 bytes Int64
float 4 bytes Single
double 8 bytes Double
boolean 1 bit Boolean

If you use Long (wrapper class for long ) then you can check for null 's:

Long longValue = null;

if(longValue == null)

If it is Long object then You can use longValue == null or you can use Objects.isNull(longValue) method in Java 7+ projects .

Please check Objects for more info.

If the longValue variable is of type Long (the wrapper class, not the primitive long ), then yes you can check for null values.

A primitive variable needs to be initialized to some value explicitly (eg to 0 ) so its value will never be null.

您可以使用longValue == null检查 Long 对象的空值,您可以将longValue == 0L用于 long(原始),因为 long 的默认值为 0L,但如果 longValue 也为零,则结果将为真

Of course Primitive types cannot be null. But in Java 8 you can use Objects.isNull(longValue) to check. Ex. If(Objects.isNull(longValue))

As mentioned already primitives can not be set to the Object type null.

What I do in such cases is just to use -1 or Long.MIN_VALUE .

If it is Long you can check if it's null unless you go for long (as primitive data types cant be null while Long instance is a object)

 Long num; if(num == null) return;

For some context, you can also prefer using Optional with it to make it somehow beautiful for some use cases. Refer @RequestParam in Spring MVC handling optional parameters

As primitives(long) can't be null,It can be converted to wrapper class of that primitive type(ie.Long) and null check can be performed.

If you want to check whether long variable is null,you can convert that into Long and check,

long longValue=null;

if(Long.valueOf(longValue)==null)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM