java.util.Objects 도구 클래스

5815 단어 java 프로그래밍
오늘 자바 봐요.util.HashMap 원본에서 이 도구 종류를 발견했습니다. jdk 1.7부터 도입된 대상과 관련된 많은 공공 방법은 더 이상 자신의 마음 항목과 관련된 도구류를 다시 쓰지 않아도 된다.
  • Objects.equals(Object a, Object b) 방법은 대상의 주소 값이 같은지 비교하는 것이며, equals 방법으로 비교하는 것이며, a, b의 대상이 비어있는지 여부
    public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }
  • 에 관심이 없다.
  • Objects.deepEquals(Object a, Object b) 방법은 깊이 비교를 하면 그룹의 내용이 같은지 비교할 수 있다
    public static boolean deepEquals(Object a, Object b) {
        if (a == b)
            return true;
        else if (a == null || b == null)
            return false;
        else
            return Arrays.deepEquals0(a, b);
    }
  • Objects.hashCode(Object 0), 이거 코드로 직접 보기
    public static int hashCode(Object o) {
        return o != null ? o.hashCode() : 0;
    }
  • Object.hashCode(Object...values) 이전 메서드의 재부팅
    public static int hash(Object... values) {
        return Arrays.hashCode(values);
    }
  • Objects.toString(Object o),Objects.toString(Object o, String null Default), 직접 코드
    public static String toString(Object o) {
        return String.valueOf(o);
    
    public static String toString(Object o, String nullDefault) {
        return (o != null) ? o.toString() : nullDefault;
    }
  • Objects.compare(T a, T b, Comparator extends T> c), 주소 값이 같으면 0을 반환하고 구체적인 정렬 규칙은 자체 정의
    public static <T> int compare(T a, T b, Comparator super T> c) {
        return (a == b) ? 0 :  c.compare(a, b);
    }
  • Objects.requireNonNull(T obj),Objects.requireNonNull(T obj, String message), 매개변수가 비어 있는지 확인합니다. 그렇지 않으면 예외가 발생합니다. jdk1.8 후 이 방법은 빈 검사가 끝날 때까지 메시지의 생성을 지연시킬 수 있습니다.비공식적인 예에서는 성능 우위를 가져올 수 있지만, 이 방법을 호출할 때 조심해야 합니다. 메시지 supplier를 만드는 비용은 문자열 메시지를 직접 만드는 것보다 낮습니다.
    public static <T> T requireNonNull(T obj) {
        if (obj == null)
            throw new NullPointerException();
        return obj;
    }
    public static <T> T requireNonNull(T obj, String message) {
        if (obj == null)
            throw new NullPointerException(message);
        return obj;
    }
    public static <T> T requireNonNull(T obj, Supplier messageSupplier) {
        if (obj == null)
            throw new NullPointerException(messageSupplier.get());
        return obj;
    }
  • Objects.isNull(Object obj)은 객체가 비어 있는지 여부를 판단하며, 이에 대응하는 nonNull 방법
    public static boolean isNull(Object obj) {
        return obj == null;
    }
    public static boolean nonNull(Object obj) {
        return obj != null;
    }
  • 이 있습니다.

    좋은 웹페이지 즐겨찾기