Hazırlamak istediğiniz sınıfın denetimine sahipseniz, iki ayrı ad verebilmeniz ve aşırı yüklenmeyle ilgili karışıklıklardan kaçınmanız için statik bir fabrika yöntemi kullanmayı düşünün.
public static Foo createFromIntArray(final int[] ints) { ... }
public static Foo createFromString(final String str) { ... }
Aksi takdirde, boş değerinizin neye uygun olduğuna karar verin: Bu bir null dizisi mi yoksa boş bir dize mi? İnşa ettiğiniz sınıfın, diğeri üzerinde farklı davranması mümkündür. Boş değerinizin neyi temsil ettiğini öğrendikten sonra, kurucuya yapılan çağrıda bu türlere dökün. Eğer açık bir null
yerine bu yapıcı bir nesne başvurusu geçen olabilir gibi
new Foo((String) null);
new Foo((int[]) null);
Son olarak, bu sesler. Belki de java.util.Map
'dan aldığınız bir şey. Eğer öyleyse, bu nesneyi instanceof
ile test edebilir ve söz konusu kurucuya göndermeden önce uygun türe yayınlayabilirsiniz.
Kayıt için, burada bir cevabı kabul etmedim, çünkü asıl sorum o kadar yanlıştı ki, doğru olanı söylemek zordu. –