CodeBlanks Logo Icon CodeBlanks

getDeclaredConstructors

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

Main.java
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

Main.java
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

Soru
Object obj = constructor.____(args);
Cevap
Object obj = constructor.newInstance(args);

Açıklama: newInstance yeni bir örnek oluşturur.

İleri seviye bölümündeki tüm dersler