나는 Object
을 확장하는 인스턴스를 가져와 함수에 캐스팅 된 인스턴스를 전달해야하는 함수가 있습니다. 함수는 많은 수의 객체 유형을 허용 할 수 있으므로 스위치를 사용하지 않으므로 매우 큰 방법이됩니다.인스턴스 유형에 자동으로 캐스팅합니다.
public void attachBufferData(ContextConstant bufferType, Object<T> data, ContextConstant usage) {
glBufferData(bufferType.getGLType(), (T) data, usage.getGLType());
}
위의 코드는 작동하지 않습니다 (Object
등은 일반적인 형식이 아닙니다), 그러나 내가 할 노력하고있어 걸쳐 얻어야한다.
는 -----
좋아, 나는이 시도 ----- 편집 : 나는 컴파일 오류 glBufferData 얻을
public void attachBufferData(ContextConstant bufferType, Object data, Class<?> dataType, ContextConstant usage) {
glBufferData(bufferType.getGLType(), dataType.cast(data), usage.getGLType());
}
그러나 (INT는, 긴, INT)을 적용 할 수 없습니다 인수 (int, capture # 1-?, int). 나는
그냥 객체를 전달하십시오. 그것을 아무 것도하지 않아도됩니다. –
glBufferData는 모든 구체적인 유형 'T'로 오버로드됩니까? 이것이 당신이 성취하려고하는 것입니까? 그렇지 않으면 특정 유형으로 전송하려는 이유를 알 수 없습니다. – plalx
@HotLicks하지만 glBufferData에는 모든 유형에 대한 함수가 있으므로 FloatBuffer 또는 IntBuffer 인스턴스 또는 Object 인스턴스를 전달해야합니다. –