A Java, nul és un literal. S'utilitza principalment per assignar un valor nul a una variable. És possible un valor nul per a una cadena, objecte o data i hora, etc. No podem assignar un valor nul als tipus de dades primitius com int, float, etc.
En programació, normalment hem de comprovar si un objecte o una cadena és nul o no per realitzar-hi alguna tasca. Per comprovar una cadena nul·la, tenim alguns mètodes predefinits de cadena. Prenguem alguns exemples de diferents tipus de dades per entendre com podem comprovar si són nuls o no.
Corda
A Java, String pot ser nul, buit o en blanc, i cadascun d'ells és diferent.
clau del període
1. Una cadena buida és un objecte de cadena que té algun valor, però la seva longitud és igual a zero. Per exemple:
String str1 = ''
2. Una cadena en blanc és una cadena que té espais en blanc com a valor. La seva longitud és sempre superior a 0 i no és ni buida ni nul·la. Per exemple:
String str2 = ''
3. Una cadena nul·la no té valor i fa que una cadena sigui nul·la assignant a nul paraula clau com a valor per a ella. Per exemple:
String str3 = null
Per comprovar si una cadena és nul·la o no, utilitzem l'operador de comparació (==). Prenguem-ne un exemple per entendre com podem utilitzar-lo per a la verificació de nulls.
NullCheckExample1.java
// import required classes and packages packagejavaTpoint.javacodes; // create class NullCheckExample1 class to check whether a string is empty or null class NullCheckExample1 { // main() method start public static void main(String[] args) { // create null, empty, and blank strings String string1 = null; String string2 = ''; String string3 = ' '; String string4 = 'Test'; // check whether string1 is null, empty, or blank System.out.println('string1 is ' + checkNullEmptyBlank(string1)); // check whether string2 is null, empty, or blank System.out.println('string2 is ' + checkNullEmptyBlank(string2)); // check whether string3 is null, empty, or blank System.out.println('string3 is ' + checkNullEmptyBlank(string3)); // check whether string4 is null, empty, or blank System.out.println('string4 is ' + checkNullEmptyBlank(string4)); } // create checkNullEmptyBlank() method which check whether the string is empty, null or blank and return result to the main() method public static String checkNullEmptyBlank(String strToCheck) { // check whether the given string is null or not if (strToCheck == null) { return 'NULL'; } // check whether the given string is empty or not else if(strToCheck.isEmpty()) { return 'EMPTY'; } // check whether the given string is blank or not else if(strToCheck.isBlank()) { return 'BLANK'; } else { return 'neither NULL, EMPTY nor BLANK'; } } }
Sortida:
Objecte Date and DateTime
Data i DateTime són tipus de dades no primitius, de manera que poden emmagatzemar un valor nul. Prenguem un exemple d'un objecte de data i hora per entendre com podem comprovar un objecte de data o hora nul.
tutorial de microserveis
NullCheckExample2.java
//import required classes and packages packagejavaTpoint.javacodes; importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Date; importjava.util.Scanner; //create class NullCheckExample2 class to check whether the Date object is null or not public class NullCheckExample2 { // declare a variable of date type and initialize it with null public static Date d1 = null; public static Date finalResult; // main() method start public static void main(String args[]) { // declare a variable of type string that will store the user-entered date in string format String d2; // create scanner class object Scanner sc = new Scanner(System.in); System.out.print('Enter Date in dd/mm/yyyy format:'); // take input from user and initialize variable d2 = sc.nextLine(); // close scanner class obj sc.close(); // create an instance of the SimpleDateFormat class for modifying the date object SimpleDateFormatobj = new SimpleDateFormat('dd/MM/yyyy'); // use try-catch to parse string to date try { finalResult = obj.parse(d2); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } // check whether date1 and date2 is null or not by using comparison operator if(d1 == null) { System.out.println('Date d1 is NULL.'); } if(finalResult == null) { System.out.println('Date d2 is NULL.'); }else { System.out.println('Date d2 is not NULL.'); } } }
Sortida:
Objecte Java
Per comprovar si un objecte Java és nul o no, podem utilitzar el mètode isNull() de l' Objectes operador de classe o de comparació. Prenguem un exemple per entendre com podem utilitzar el mètode isNull() o l'operador de comparació per a la verificació de nulls d'objectes Java.
NullCheckExample3.java
// import required classes and packages packagejavaTpoint.javacodes; // create NullCheckExample3 class to check whether Java object is null or not public class NullCheckExample3 { // main() method start public static void main(String[] args) { // create instance of User2 User2 userObj = new User2(); // get data of User2 by calling User1 firstUser = userObj.getFirstUser(); // check whether firstUser is null or not if (firstUser == null) { System.out.println('Object is Null'); } else { System.out.println('Object is not Null'); // set name for user1 firstUser.setName('Paul'); System.out.println(firstUser.getName()); } } } // create User1 class having a name attribute class User1 { // declare name variable String name; // getter for getting name of User1 public String getName() { // return name of User1 return name; } // setter for setting name of User1 public void setName(String name) { this.name = name; } } // create class User2 having variable of type User1 class User2 { User1 obj; // getter to get object of User1 public User1 getFirstUser() { returnobj; } }
Sortida:
int a conversió de cadena en java
NullCheckExample4.java
// import required classes and packages packagejavaTpoint.javacodes; importjava.util.Objects; // create NullCheckExample3 class to check whether Java object is null or not public class NullCheckExample4 { // main() method start public static void main(String[] args) { // create instance of User2 User2 userObj = new User2(); // get data of User2 by calling User1 firstUser = userObj.getFirstUser(); // check whether firstUser is null or not if (Objects.isNull(firstUser) ){ System.out.println('Object is Null'); } else { System.out.println('Object is not Null'); // set name for user1 firstUser.setName('Paul'); System.out.println(firstUser.getName()); } } } // create User1 class having a name attribute class User1 { // declare name variable String name; // getter for getting name of User1 public String getName() { // return name of User1 return name; } // setter for setting name of User1 public void setName(String name) { this.name = name; } } // create class User2 having variable of type User1 class User2 { User1 obj; // getter to get object of User1 public User1 getFirstUser() { returnobj; } }
Sortida: