28 Şubat 2011 Pazartesi

Java 7 önizleme sürümü yayınlandı



Java dünyasının sabırsızlıkla beklediği Java 7 en sonunda beta testlerine başladı. Java 7 Preview Edition'u indirmek için : http://jdk7.java.net/preview/ sitesine gidip sisteminize uygun sürümü indirmeniz gerekmekte.
Unutmadan ekleyeyim bu Java 7 değil Java 7 Önizleme sürümü yani bir nevi beta sürümü hatalar olacaktır.

16 Şubat 2011 Çarşamba

Java Annotasyonları - Java Annotations

Java Annotasyonları Java 5 ile gelen ve bir sınıfa meta data (özlük bilgisi diyebiliriz) eklememizi sağlayan özelliktir. Annotasyonlar sayesinde bir sınıf içine çalışma anında veya bilgi amaçlı kullanmak için çeşitli değerler saklayabiliriz.
Örnek bir annotasyon şu şekildedir :


public @interface TestAnno {
int age();
String name();
}


Annotasyonlar birer interface sınıfıdır fakat interface tanımlamadan farklı özellikleri de vardır.
Yukarıdaki örnekte oluşturulan interface sınıfının kullanımına bir örnek aşağıdadır :

public class Person {
@TestAnno(age = 10, name="Tayfun")
public String name;
}


Annotasyonlar metodlara, değişkenlere ve sınıflara uygulanabilirler. Annotasyonları sınıf içinde yazarken illaki içini doldurmanız gerekmez, sadece annotasyon adını da kullanabiliriz :

public class Person {
@TestAnno
public String name;
}


Tabi bu şekilde yapabilmemiz için TestAnno annotasyon sınıfındaki alanlara default değerler vermemiz gerekir çünkü bir annotasyon tanımlandığında eğer annotasyon değişkenlerine default bir değer vermez isek Java annotasyonları sınıf içinde yazarken değişkenlerini mutlaka doldurmamızı bekler. Aşağıdaki örnekteki gibi default değerler verirsek bu değişkenleri tanımlamadan annotasyonu sınıf içinde kullanabiliriz.


public @interface TestAnno {
int age() default 0;
String name() default "";
}


Annotasyonlar Java Reflection kullanan kodlar içinde çok işe yararlar örneğin şöyle bir senaryo düşünün, bir sınıfın içini reflection ile doldurmaya çalışıyorsunuz ve bir alana varsayılan bir değer atamak gerektiğinde bu varsayılan değeri annotasyondan okuyabiliriz.

Annotasyonlar spring, jsf 2 gibi frameworklerin temelini oluşturmaktalar ve annotasyonlar sayesinde xml dosyalarına gerek duymadan da konfigurasyon yapılabilir hale geldi.