26 Aralık 2018 Çarşamba

Objects Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.util.Objects;
Açıklaması şöyle.
Objects is a class consists of static utility methods for operating on objects, or checking certain conditions before an operation.
Bu sınıf Files, Arrays gibi tamamen static metodlardan oluşan yardımcı bir sınıftır.

Bu sınıf en çok equals ve hashCode metodlarını override etmek için kullanılır.
Örnek
Şöyle yaparız.
public Foo(Foo that) { // not a copy constructor!!!
  this.category = that.category;
  this.amount = 0;
  this.price = 0;
}

public int hashCode() {
  return Objects.hashCode(category);
}

public boolean equals(Object another) {
  if (another == this) return true;
  if (!(another instanceof Foo)) return false;
  Foo that = (Foo) another;
  return Objects.equals(this.category, that.category);
}
equals metodu
Metodun içi şöyle.
public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}
Şöyle yaparız.
public class Foo {
  private String name;
    
  @Override
  public boolean equals(Object o) {

    if (o == this) return true;
    if (!(o instanceof Foo)) {
      return false;
    }
    Foo foo = (Foo) o;
    return Objects.equals(name, foo.name);
 }
    
}
hash metodu
Şöyle yaparız.
public class Foo {
  private String name;

  
  @Override
  public int hashCode() {
    return Objects.hash(name);
  }
}
isNull metodu
Metodun içi şöyle.
public static boolean isNull(Object obj) {
  return obj == null;
}
nonNull metodu
true veya false döner. Şöyle yaparız.
// Print only non-null elements
list.stream()
    .filter(Objects::nonNull)
    .forEach(System.out::println);
requireNonNull metodu
Metodun için şöyle
public static <T> T requireNonNull(T obj) {
  if (obj == null)
    throw new NullPointerException();
  return obj;
}
Hata mesajı olmadan şöyle yaparız. Nesne null ise exception fırlatılır,  değilse nesneyi döner.
public class A {

  private B b;
  private C c;
  
  public A(B b, C c) {
    this.b = Objects.requireNonNull(b);
    this.c = Objects.requireNonNull(c); 
  }
}
Hata mesajı ile şöyle yaparız.
public class Foo {
  private final Bar bar;

  public Foo(Bar bar) {
    Objects.requireNonNull(bar, "bar must not be null");
    this.bar = bar;
  }
}
requireNonNullElse metodu
Java 9 ile geliyor.
Örnek
Şöyle yaparız.
String foo = null;
Objects.requireNonNullElse(foo, "nonNull");//returns the string "nonNull"
Örnek
Şöyle yaparız
Objects.requireNonNullElse(serviceResponse.getEntryList(),
                           Collections.emptyList())
Örnek
Eğer her iki parametre de null ise exception fırlatır. Şöyle yaparız.
String foo = null, bar = null;
Objects.requireNonNullElse(foo, bar);//throws a NullPointerException
toString metodu
Eğer nesnenin toString metodu override edilmemişse java.lang.String@1e23 gibi bir değer döner.

Metodun içi şöyle.
public static String toString(Object o) {
  return String.valueOf(o);
}
Örnek
Şöyle yaparız.
String description = Objects.toString(...);
wait metodu
Açıklaması şöyle.
[...] This method causes the current thread (call it T) to place itself in the wait set for this object and then to relinquish any and all synchronization claims on this object. [...]

Hiç yorum yok:

Yorum Gönder