1
내 매개 변수 값에 제네릭 클래스를 사용하고 인터페이스 메서드를 사용하여 내용을 반환하고 싶지만 일치하는 반환 형식이 없다는 컴파일 오류가 있습니다. 이 문제를 해결할 수있는 방법이 있습니까? 아래 코드 :일반 클래스의 인터페이스와 동일한 반환 유형이 없습니다.
public class Parameter
{
public Parameter(String name, int value)
{
this.name = name;
this.type = eType.typeInt;
this.parameterValue = new ParameterValueTemplate<int>(value);
}
public Parameter(String name, double value)
{
this.name = name;
this.type = eType.typeDouble;
this.parameterValue = new ParameterValueTemplate<double>(value);
}
public interface IParameterValue
{
int GetValue();
}
class ParameterValueTemplate<T> : IParameterValue
{
public ParameterValueTemplate(T value)
{
this.value = value;
}
public T GetValue()
{
return value;
}
T value;
}
public String name;
public IParameterValue parameterValue;
}
귀하의 인터페이스도 제네릭이어야합니다. 아마도 일반적인 매개 변수 값 템플릿의 인터페이스에서 반환 형식으로'int'가 필요하기 때문에 불만을 나타낼 것입니다. – Vlad
클래스 선언이 잘못되었습니다. 'T'가'IParameterValue'라고 기대한다면,'T'에 제너릭 제약이 필요합니다. 제네릭 클래스에 인터페이스를 구현하는 것이 아닙니다. –
어. 왜 당신은 인터페이스를 중첩시킬 수 있습니까? 그것은 인터페이스의 요점을 완전히 무너 뜨립니다! – BradleyDotNET