+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 پاسخ 279 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
+4 امتیاز
1 پاسخ 819 بازدید
+1 امتیاز
1 پاسخ 398 بازدید
+2 امتیاز
1 پاسخ 336 بازدید
سوال شده 3 سال قبل در برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 امتیاز
2 پاسخ 826 بازدید
+1 امتیاز
2 پاسخ 2.0هزار بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط sara_sheikhi (20 امتیاز)
0 امتیاز
1 پاسخ 437 بازدید
+1 امتیاز
1 پاسخ 982 بازدید
0 امتیاز
2 پاسخ 1.7هزار بازدید
...