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

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

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

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 و می‌نویسه. میشه توضیح بدید علت چیست؟

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

1 جواب

+1 رأی

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

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

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

0 رأی
1 جواب میانگین بازدید روزانه 0.19116 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط یوری (426 امتیاز)
+4 رأی
1 جواب میانگین بازدید روزانه 0.32494 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.1221 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.39276 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.21357 بازدید
+1 رأی
2 جواب میانگین بازدید روزانه 0.821,498 بازدید
سوال 4 سال قبل در تالار برنامه نویسی توسط sara_sheikhi (20 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.09209 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.22499 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.481,097 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.09218 بازدید
کانال تلگرام جواب یاب
...