আমার এই কোডটি রয়েছে:
package tests;
import java.util.Hashtable;
public class Tests {
public static void main(String[] args) {
Hashtable<String, Boolean> modifiedItems = new Hashtable<String, Boolean>();
System.out.println("TEST 1");
System.out.println(modifiedItems.get("item1")); // Prints null
System.out.println("TEST 2");
System.out.println(modifiedItems.get("item1") == null); // Prints true
System.out.println("TEST 3");
System.out.println(Boolean.valueOf(null)); // Prints false
System.out.println("TEST 4");
System.out.println(Boolean.valueOf(modifiedItems.get("item1"))); // Produces NullPointerException
System.out.println("FINISHED!"); // Never executed
}
}
আমার সমস্যাটি হ'ল আমি বুঝতে পারি না কেন টেস্ট 3 ঠিকঠাক কাজ করে (এটি মুদ্রণ করে false
এবং উত্পাদন করে না NullPointerException
) এর মধ্যে টেস্ট 4 নিক্ষেপ করে NullPointerException
। আপনি পরীক্ষায় দেখতে পারেন 1 এবং 2 , null
এবং modifiedItems.get("item1")
সমান এবং হয় null
।
আচরণটি জাভা 7 এবং 8 এ একই রকম।
null
একই ফাংশনটিতে আক্ষরিক পাস করার ফলে এনপিই তৈরি হয় না ! এটির জন্য একটি ভাল কারণ আছে, তবে এটি অবশ্যই প্রথম দর্শনে বিভ্রান্তিকর :-)
==
প্রয়োগ করা হয় তার থেকে আলাদা ।