17 Mart 2016 Perşembe

Javada Bilinmeyen Tiplerdeki Parametrelerle Çalışmak- Varargs(Variable Arguments)

Merhaba,
Bu yazımda sizlere javada varargs kullanımından bahsedeceğim.
Diyelim ki  bir method tanımlamak istiyorsunuz ve bu method bazen String bazen Integer parametre ile çağrılacak. Hatta bazı durumlarda hem String hem Integer parametreyi aynı anda göndermek isteyeceksiniz.  Yani metodun hangi tipteki parametre ile çağrılacağını bilmiyorsunuz. Eğer sadece bir bilinmeyen tipte sadece  bir  parametre yollayacak olsaydık bu  durumda yapmamız gereken işlem metodu Object tipinde bir parametre ile  çağırmak olacaktı.  Ancak birden fazla ve farklı tiplerdeki parametre(String,Integer,boolean.. vs aynı anda) ile aynı anda göndermek istediğimizde bu tanımlama işimize yaramayacaktı.   İşte tam elimiz kolumuz bağlandı mı diye düşünürken  varargs kullanımı  yardımımıza konuşuyor.   Object... (üç nokta array olduğunu belirtiyor) tipinde bir parametre alan foo adında bir method tanımlıyoruz.  Ve bu metodu istediğimiz tiple çağırıp kullanabiliyoruz. Aşağıda örnek bir kodlama yaptım incelemenizi tavsiye ederim. Bir  çok projede bu kullanım işinize yarayacaktır.

Kod örneği:
package com.lvt;

/**
 * Created by leventyildiz on 17/03/16.
 */

public class Run {

    public static void main(String[] args) {

        foo("Levent", 123, true);
    }

    public static void foo(Object... objects) {

        for (Object s : objects) {

            System.out.println(s.toString());

        }
    }
}

çıktı:
Levent
123
true


javada String class’ı içerisinde kullanımı.
public static String format(Locale l, String format, Object... args) {
   
return new Formatter(l).format(format, args).toString();
}


Formatter class’ında ki kullanımından bir örnek:
public Formatter format(String format, Object ... args) {

    return format(l, format, args);

}


String classıyla bir örnek yapalım:
String str = String.format("integer values: %d - %s", 5,"aliveli");

System.out.println(str);

Burada String class’ı içindeki format methoduna hem String hem Integer parametreyi aynı anda gönderdik.

Çıktı:
integer values: 5 - aliveli

Hiç yorum yok:

Yorum Gönder