将Java代码转换为delphi的问题 [英] Problems with converting Java code to delphi

查看:124
本文介绍了将Java代码转换为delphi的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个必须返回通用接口的方法。试图在delphi中制作方法。但是不确定如何编写吗?有谁可以帮助我吗?
这是我在Java中制作的有效示例:

I have a method that must return a generic interface. Have tried to make the method in delphi. But are unsure on how it should be written? Is there anyone who can help me? Here's an example I've made in Java that works:

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中做同样的事情。

Then tried to do the same in delphi .. But can not get it to work?

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通用约束不支持通配符。因此,您可以管理的最接近参数涉及两个通用参数。该函数将如下所示:

Delphi generic constraints do not support wildcards. So the closest you can manage involves two generic parameters. The function would look like this:

function GetDataProvider<S; T: IStandardDataProvider<S>>(...): T;

这篇关于将Java代码转换为delphi的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆