+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 پاسخ 282 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+4 امتیاز
1 پاسخ 822 بازدید
+1 امتیاز
1 پاسخ 402 بازدید
+2 امتیاز
1 پاسخ 338 بازدید
سوال شده 3 سال قبل در برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 امتیاز
2 پاسخ 838 بازدید
+1 امتیاز
2 پاسخ 2.0هزار بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط sara_sheikhi (20 امتیاز)
0 امتیاز
1 پاسخ 440 بازدید
+1 امتیاز
1 پاسخ 984 بازدید
0 امتیاز
2 پاسخ 1.7هزار بازدید
...