İki kurucudan biri kullanılarak başlatılabilen çok sayıda son üyeye sahip bir sınıfa sahibim. Kurucular, üçüncü bir kurucuda depolanan bazı kodları paylaşırlar. Variable 'two' might not have been initialized.
Birisi muhtemelen Sınıfım içinden birinci yapıcı diyebiliriz ve sonra yeni bir nesne yok "iki" alan kümesi olurdu:Java'da son alanları başlangıç durumuna getirme
// SubTypeOne and SubTypeTwo both extend SuperType
public class MyClass {
private final SomeType one;
private final SuperType two;
private MyClass(SomeType commonArg) {
one = commonArg;
}
public MyClass(SomeType commonArg, int intIn) {
this(commonArg);
two = new SubTypeOne(intIn);
}
public MyClass(SomeType commonArg, String stringIn) {
this(commonArg);
two = new SubTypeTwo(stringIn);
}
sorun bu kod derlemek olmamasıdır.
Bu durumda, kurucular arasında kod paylaşmanın tercih edilen yolu nedir? Normalde bir yardımcı yöntem kullanırdım, ancak paylaşılan kod sadece bir kurucudan yapılabilecek son değişkenleri ayarlayabilmelidir.
Bu iki * özdeş * kurucular (aynı parametreleri, aynı gövde) sahip olarak şu anda sorunuzu anlamak zordur. Daha fazla temsilci bulabilir misin? –
İlk kurucuda, iki başlatılmamış. –
@Jon Skeet - Yeniden bak, parametre tipleri farklı. –