Java 1.7から使用可能となっているObjectsクラスは1.6までだと気にする必要があったnullポ発生の心配はないので実装もシンプルになり結構便利です。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
@Test public void objectsEqualsTest() { // 準備 String str1 = "123"; String str2 = "123"; String str3 = null; Long long1 = 123L; Long long2 = 123L; long long3 = 123L; Long long4 = null; int int1 = 123; Integer integer1 = null; // 実行 boolean result1 = Objects.equals(str1, str2); boolean result2 = Objects.equals(str1, str3); boolean result3 = Objects.equals(long1, long2); boolean result4 = Objects.equals(long1, long3); boolean result5 = Objects.equals(str1, long1); boolean result6 = Objects.equals(long1, int1); boolean result7 = Objects.equals(long4, integer1); // 検証 assertEquals("String同士の比較が一致していません。", true, result1); assertEquals("Stringとnullの比較が不一致していません。", false, result2); assertEquals("Long同士の比較が一致していません。", true, result3); assertEquals("Longとlongの比較が一致していません。", true, result4); assertEquals("StringとLongの比較が不一致していません。", false, result5); assertEquals("longとintの比較が一致していません。", false, result6); assertEquals("Long(null)とInteger(null)の比較が一致していません。", true, result7); } |