유형 목록을 인스턴스화 할 수 없습니다. [복제]
이 질문에 이미 답변이 있습니다.
다음 코드가 있습니다.
List<Product> product = new List<Product>();
오류:
Cannot instantiate the type List<Product>
Product내 EJB 프로젝트의 엔티티입니다. 이 오류가 발생하는 이유는 무엇입니까?
List인터페이스 입니다. 인터페이스는 인스턴스화 할 수 없습니다. 구체적인 유형 만 인스턴스화 할 수 있습니다. 인터페이스 ArrayList의 구현 인 을 사용하고 싶을 것입니다 List.
List<Product> products = new ArrayList<Product>();
예를 들어. ArrayList대신 구체적인 목록 유형을 사용하십시오 List.
목록은 인터페이스입니다. 결국 특정 수업이 필요하므로 시도하십시오
List l = new ArrayList();
또는
List l = new LinkedList();
귀하의 필요에 맞는 것.
List는 인터페이스를 구현하는 모든 클래스에 의해 인스턴스화 될 수 있습니다.이 방법으로 Java는 다형성 동작을 제공합니다. 아래 예제를 참조하십시오.
List<String> list = new ArrayList<String>();
ArrayList를 직접 인스턴스화하는 대신 List를 사용하여 ArrayList 개체를 참조하므로 List 인터페이스 메서드 만 사용하고 실제 구현에는 신경 쓰지 않습니다.
List를 구현하는 클래스의 예는 ArrayList, LinkedList, Vector입니다. 요구 사항에 따라 List를 만들고 싶을 것입니다.
예 :-LinkedList는 여러 번의 무효화 또는 삭제를 수행해야 할 때 더 유용합니다 .Arraylist는 고정 크기 배열로 지원되고 배열을 이동하거나 다시 늘려 배열 내용을 변경해야하므로 성능 집약적입니다.
다시 말하지만, List를 사용하면 프로그램에서 더 이상 코드를 변경하지 않고도 객체 인스턴스화를 간단히 변경할 수 있습니다.
우리가 ArrayList<String> value = new ArrayList<String>();
ArrrayList의 특정 방법을 사용할 수 있으며 출력 코드는 강력하지 않습니다.
사용하여 List<String> value = new ArrayList<String>();
List 인터페이스 메서드 만 사용하고 있는지 확인하고 LinkedList로 변경하려면 코드를 변경하면됩니다.
List<String> value = new ArrayList<String>();
------ 코드는 List 인터페이스 메서드를 사용합니다 .....
value = new LinkedList<String>();
----- 귀하의 코드는 여전히 List 인터페이스 메서드를 사용하며 아무것도 변경할 필요가 없습니다 .---- 코드에서 더 이상 변경할 필요가 없습니다.
그건 그렇고 LinkedList는 또한 인터페이스이기 때문에 인스턴스화 할 수없는 Deque도 작동합니다.
인터페이스는 직접 인스턴스화 할 수 없으므로 이러한 인터페이스를 구현하는 클래스를 인스턴스화해야합니다.
이 시도:
NameValuePair[] params = new BasicNameValuePair[] {
new BasicNameValuePair("param1", param1),
new BasicNameValuePair("param2", param2),
};
참고 URL : https://stackoverflow.com/questions/7960149/cannot-instantiate-the-type-listproduct
'Programing' 카테고리의 다른 글
| 포함 형식의 입력을 얻는 방법은 무엇입니까? (0) | 2020.08.19 |
|---|---|
| 자바의 JPanel 패딩 (0) | 2020.08.19 |
| 특정 파일의 상위 디렉토리 이름을 얻는 방법 (0) | 2020.08.18 |
| Java 파일에 둘 이상의 클래스가있을 수 있습니까? (0) | 2020.08.18 |
| 와일드 카드 또는 "like"와 유사한 디렉토리 이름 찾기 (0) | 2020.08.18 |