تعریف Generic Constructor در جاوا

+2 رأی
میانگین بازدید روزانه 0.569 بازدید

لطفا به کد زیر توجه کنید:

public class Container<E> {

  private E data;
  private String description;

  public Container() {
  }

  public <T> Container(T t) {
    System.out.println("Generic Constructor: " + t.getClass());
  }

  public E getData() {
    return data;
  }

  public void setData(E data) {
    this.data = data;
  }

  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  @Override
  public String toString() {
    return "Container{" +
            "data=" + data +
            ", description='" + description + '\'' +
            '}';
  }
}

و همچنین این کد:

import java.util.Date;

public class App {

  public static void main(String[] args) {

    new <Date>Container(new Container<>());
  }
}

همانطور که مشاهده می‌کنید من نوع پارامتر Generic سازنده را Date در نظر گرفتم، اما آبجکت Container به عنوان آرگومان به سازنده دادم. اما برنامه به درستی اجرا میشه و در کنسول برنامه اسم کلاس Container و می‌نویسه. میشه توضیح بدید علت چیست؟

سوال 4 ماه قبل در تالار برنامه نویسی توسط 1993 (242 امتیاز)
برچسب گذاری مجدد در 4 ماه قبل توسط moderator

1 جواب

+1 رأی

شما بعنوان پارامتر به Constructor این کلاس یک شئ از نوع Container فرستادید بنابراین در کنسول نوع Container پرینت خواهد شد. اگر می خواهید نوع Date چاپ بشه باید شئ از نوع Date برای Constructor بفرستید:

new Container(new Date());
جواب 4 ماه قبل توسط Saeed Zarinfam (707 امتیاز)
پس مشخص کردن نوع پارامتر قبل از نام سازنده چه کاربردی داره؟
مرسی از پاسختون.

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.18131 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط یوری (426 امتیاز)
+4 رأی
1 جواب میانگین بازدید روزانه 0.31509 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1230 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.7779 بازدید
سوال 3 ماه قبل در تالار برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 رأی
2 جواب میانگین بازدید روزانه 0.4324 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.21382 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.81,554 بازدید
سوال 5 سال قبل در تالار برنامه نویسی توسط sara_sheikhi (20 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.09213 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.23559 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.491,179 بازدید
کانال تلگرام جواب یاب
...