지금 제네릭을 연구 중이며 나를 위해 데이터를 저장할 수있는 매개 변수화 된 클래스를 작성하는 방법을 궁금해합니다. 나에 대한 C++의 영향으로 알고 싶다. 둘째, 어떻게 ArrayList가 만들어 졌는지 궁금합니다.내 자신의 사용자 정의 컨테이너를 만드는 방법 - 기본 생성자 없음
제 문제는 기본 생성자가없는 클래스의 새 인스턴스 (Integer)를 만들 수 없다는 것입니다. 저는이 수업들을 개별적으로 다루기 위해서 제가 수업을 전문화해야한다는 것을 압니다. 그러나 Java에는 C++와 같은 특수화가 없습니다.
어떻게 대신 시험의 정수를 처리하는
import java.lang.*;
class test {}
class generic<T> {
private Class<T> type;
T element;
generic(Class<T> type) {
this.type = type;
try {
element = type.newInstance();
} catch (Exception e) {
System.out.println("error " + e);
}
}
static <T> generic<T> create(Class<T> type) {
return new generic<T>(type);
}
}
public class Generic {
public static void main(String[] args) {
generic<Test> test = generic.create(Test.class);
System.out.println(test);
}
}
그래서 코드를 변경할 수 있습니까?
ArrayList의 작동 방식을 알고 싶다면 소스를 읽으시겠습니까? 또한 컨테이너가 생성 할 새로운 유형의 인스턴스를 생성해야하는 이유는 무엇입니까? 그것은 더 이상 "컨테이너"처럼 보이지 않습니다. –
클래스 이름은'Test'와 같이'UpperCamelCase'가되어야하고 Java 표준 관습을 따르려면'Generic'이어야합니다. –