getDeclaredConstructors
- Java kursu
- İleri seviye
- Ders 29/82
- 5 dk
getDeclaredConstructors ile yapıcı listesini öğrenirsin.
getDeclaredConstructors ile kurucular
Class.getDeclaredConstructors() sınıfın tüm kurucularını döndürür; private olanlar dahil. getConstructors ise yalnızca public kurucuları verir.
Örnek: Constructor<?>[] cs = Book.class.getDeclaredConstructors(). Dönen dizide her öğe için c.getParameterCount() parametre sayısını verir. Tek bir kurucuyu ada göre değil, parametre türlerine göre alırsın: getDeclaredConstructor(String.class).
newInstance ile örnek oluşturma
Bir Constructor nesnesi ile yeni örnek oluşturmak için newInstance(args) kullanılır. Bu, sıradan new çağrısının reflection karşılığıdır.
Örnek: Book b = (Book) c.newInstance("Java"). Burada c bir Constructor<Book>'tir. Parametre sayısı ve türleri kurucuyla uyumlu olmalıdır; aksi halde istisna fırlar. Bu desen, çerçevelerin sınıf adından örnek oluşturmasının temelidir.
Uygulama Constructor.newInstance ile Book oluştur
Bir Book sınıfı tanımla; public String title alanı ve public Book(String title) kurucusu olsun. Book.class.getDeclaredConstructor(String.class) ile kurucuyu al. newInstance("Java") ile örnek oluştur ve title alanını System.out.println ile yazdır. main imzasına throws Exception ekle.
Başlangıç kodu
import java.lang.reflect.Constructor;
// Book sınıfını tanımla (title alanı ve kurucusu)
// getDeclaredConstructor ile kurucuyu al
// newInstance ile örnek oluştur, title yazdırÖrnek çözüm
import java.lang.reflect.Constructor;
class Book {
public String title;
public Book(String title) {
this.title = title;
}
}
public class NewInstanceExample {
public static void main(String[] args) throws Exception {
Constructor<Book> c = Book.class.getDeclaredConstructor(String.class);
Book b = c.newInstance("Java");
System.out.println(b.title);
}
}Beklenen çıktı
Java
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi yöntem private kurucular dahil tüm kurucuları döndürür?
- getDeclaredConstructors Doğru cevap
- getConstructors
- getMethods
- getFields
Açıklama: getDeclaredConstructors tüm kurucuları verir.
2 Constructor yöntemlerini eşleştir
| Kavram | Anlamı |
|---|---|
getDeclaredConstructors |
Tüm kurucular |
getConstructors |
Public kurucular |
newInstance |
Örnek oluştur |
getParameters |
Parametreleri al |
3 newInstance çağrısını tamamla
Object obj = constructor.____(args);
Object obj = constructor.newInstance(args);
Açıklama: newInstance yeni bir örnek oluşturur.