+2 امتیاز
قبل در برنامه نویسی توسط (242 امتیاز)
برچسب گذاری دوباره قبل توسط

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

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

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

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

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

سوالات مشابه

0 امتیاز
1 پاسخ 301 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+4 امتیاز
1 پاسخ 849 بازدید
+1 امتیاز
1 پاسخ 426 بازدید
+2 امتیاز
1 پاسخ 356 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 امتیاز
2 پاسخ 912 بازدید
+1 امتیاز
2 پاسخ 2.1هزار بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط sara_sheikhi (20 امتیاز)
0 امتیاز
1 پاسخ 456 بازدید
+1 امتیاز
1 پاسخ 1.0هزار بازدید
0 امتیاز
2 پاسخ 1.8هزار بازدید
...