다음은 Java에서 작동하지 않는 이유를 파악하려고합니다. , 원java 생성자에서 추상 클래스 목록을 가져올 수 있습니까?
public abstract class Shape {
}
이 두 가지 구체적인 클래스를 가지고 말할 수 있습니다 :
public class Square extends Shape {
public Square(Shape shape)
{
// nothing
}
public Square(List<Shape> shapes)
{
// nothing
}
}
을 감안할 때 : 여러 생성자가
public class Circle extends Shape {
}
및 광장, 여기에
는 기본 추상 클래스입니다 이 코드 :Circle c = new Circle();
List<Circle> cList = new ArrayList<Circle>();
Square s = new Square(c);
Square s2 = new Square(cList);
마지막 줄은 오류 발생 :
The constructor Square(List<Circle>) is undefined.
을하지만 매개 변수 List<Shape>
소요 광장에서 생성자를 가지고 있고, 서클는 모양입니다 - 하나의 모양이 괜찮 취하는 생성자입니다. 그래서 나는 왜 내가이 오류를 이해하는지 모르겠다. 당신의 도움을 주셔서 감사합니다.
public Square(List<? extends Shape> shapes)
{
// nothing
}
이 Shape
를 확장하는 모든 클래스를 받아들로
빠른 응답 감사합니다. 몇 달 동안 Java로 작업했지만 전에 와일드 카드 유형 매개 변수를 보지 못했습니다. – JasonK