لطفا به کد زیر توجه کنید:
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 و مینویسه. میشه توضیح بدید علت چیست؟