我有一个必须返回通用接口(interface)的方法。曾尝试在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;
关于java - Java代码转delphi的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19774018/