Dubluve.net » efektif byte-code http://www.dubluve.net Biz de yazılımcıyız Wed, 30 Jul 2014 22:06:10 +0000 tr-TR hourly 1 http://wordpress.org/?v=3.9.1 Java 7 – switch İfadelerinde String Nesnesi Kullanımı http://www.dubluve.net/2012/08/06/java-7-switch-ifadelerinde-string-nesnesi-kullanimi/ http://www.dubluve.net/2012/08/06/java-7-switch-ifadelerinde-string-nesnesi-kullanimi/#comments Mon, 06 Aug 2012 09:45:19 +0000 http://dubluve.net/?p=1647 Java’nın 7 versiyonundan önce switch ifadelerinde sadece primitive tipler (char, int, byte, short), bunların wrapper sınıfları (Character, Integer, Byte, Short) ve enumareted tipler (enum) kullanılabiliyordu. Java 7 ile birlikte switch ifadelerinde artık String nesneleri de kullanılabiliyor.

Eski usül bir örnek verecek olursak;

public static final int MONTH_JAN = 1;
public static final int MONTH_FEB = 2;
// ...

public void monthProcess (int month)
{
    switch (month) {
        case MONTH_JAN:
        // ...
        break;
        case MONTH_FEB:
        // ...
        break;
        // ...
    }
}

Şimdi de aynı örneğin Java 7′de String nesneleriyle kullanımına bakalım;

public void monthProcess(String month) {
    switch (month) {
        case "Jan":
        // ...
        break;
        case "Feb":
        // ...
        break;
        // ...
    }
}

Java 7′den önce bu örneği if-else if yapısıyla kullanıyorduk.

public void monthProcessWithIf(String month) {
    if (month.equals("Jan")) {
        // ...
    } 
    else if (month.equals("Feb")) {
        // ...
    }
    // ...
}

Artık doğrudan switch ifadelerinde kullanabiliyoruz. Ayrıca burada belirtildiğine göre Java derleyicisi switch ifadelerinde String kullanınca if-else if yapısına göre daha efektif byte-code üretiyor.

Son olarak, switch ifadelerinde kullandığımız String ifadeleri büyük küçük harf duyarlı. Gözden kaçmasın.

Ayrıca, Netbeans ve Eclipse (kullanıyorsanız) IDE’lerinin son versiyonlarını yüklemeyi unutmayın. Eski versiyonlar Java 7 desteği vermiyor.  Doğrudan java derleyicisi kullananlar için bu açıdan sorun yok.

]]>
http://www.dubluve.net/2012/08/06/java-7-switch-ifadelerinde-string-nesnesi-kullanimi/feed/ 7