我有一个必须返回通用接口的方法。试图在delphi中制作方法。但是不确定如何编写吗?有谁可以帮助我吗?这是我在Java中制作的有效示例:
public < T extends StandardDataProvider<?>> T GetDataProvider(String dataProviderName) {
if (dataproviders == null)
buildDataProviderMap();
if (dataproviders.containsKey(dataProviderName)) {
return (T) dataproviders.get(dataProviderName);
} else
return null;
}
然后试图在delphi中做同样的事情..但是不能使它工作吗?
function TLocalDataProviderFactory. GetDataProvider(DataProviderName: string): IStandardDataProvider; // Shows errors here?
begin
if not Assigned(DataProvider) then
BuildDataProviderMap;
if DataProvider.ContainsKey(DataProviderName) then
begin
Result := DataProvider.Items[DataProviderName];
end
else
begin
Result:= nil;
end;
end;
Delphi通用约束不支持通配符。因此,您可以管理的最接近参数涉及两个通用参数。该函数将如下所示:
function GetDataProvider<S; T: IStandardDataProvider<S>>(...): T;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句