자바 범 형 에 따라 대상 을 만 들 고 범 형 대상 을 예화 합 니 다.

1390 단어 Java
실례 화 범 형 대상
발표 한 코드 에 서 는 일반적인 형식 을 만 들 수 없습니다T어떤 유형 인지 모 르 기 때 문 입 니 다.
public class Abc
{
       public T getInstanceOfT()
       {
           // There is no way to create an instance of T here
           // since we don't know its type
       }
} 

물론 인용Class그리고T기본 구조 함수 가 있다 면newInstance()이 Class 대상 을 호출 할 수 있 습 니 다.
만약 에 하위 클래스 를 계승 한다 면Abc유형 지우 기 문 제 를 해결 할 수 있 고 그 어떠한 것 도 전달 할 필요 가 없다Class인용:
import java.lang.reflect.ParameterizedType;

public class Abc
{
	private T getInstanceOfT()
	    {
	        ParameterizedType superClass = (ParameterizedType) getClass().getGenericSuperclass();
	        Class type = (Class) superClass.getActualTypeArguments()[0];
	        try
	        {
	            return type.newInstance();
	        }
	        catch (Exception e)
	        {
	            // Oops, no default constructor
	            throw new RuntimeException(e);
	        }
	    }
	
	    private Class getClassOfT()
	    {
	        ParameterizedType superClass = (ParameterizedType) getClass().getGenericSuperclass();
	        Class type = (Class) superClass.getActualTypeArguments()[0];
	        return type;
	    }

class SubClass
    extends Abc
{
}

좋은 웹페이지 즐겨찾기