10 Ağustos 2018 Cuma

Comparable Arayüzü

Tanımlama 
İmzası şöyle.
public interface Comparable<T> {
    int compareTo(T o);
}
Nesne bu arayüzden türetilir. Ayrıca Comparable arayüzüne kendi sınıf tipimi geçerim. Daha sonra compareTo metodu gerçekleştirilir. Nesnem diğer nesneden büyükse 1, diğer nesneye eşitse 0, küçükse -1 dönerim.
public class Foo implements Comparable<Foo> {  
  public int compareTo(Foo other) {...}
}
Yanlış Tanımlama 
Comparable arayüzüne sınıf tipi geçmemek muhtemelen yanlış bir tanımlama. Şöyle yapmamalı.
public class Foo implements Comparable
{
  ...
}
Sınıfım Generic İse
Şöyle yaparız
public class Foo<T> implements Comparable<T> {
  @Override
  public int compareTo(final T o) {
    return ...;
  }
}
Generic tip Comparable Arayüzünden kalıtsın istiyorsak şöyle yaparız.
public class Foo<T extends Comparable<T>> {
  ...
}


Hiç yorum yok:

Yorum Gönder