delphi转java,将Java代码转换为delphi的问题

这篇博客探讨了如何在Java中实现一个返回泛型接口的方法,并尝试将其转换为Delphi代码。作者遇到了Delphi不支持泛型约束通配符的问题。解决方案是使用两个泛型参数来接近Java中的实现。函数最终形式在Delphi中展示。
摘要由CSDN通过智能技术生成

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;

}

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 generic constraints do not support wildcards. So the closest you can manage involves two generic parameters. The function would look like this:

function GetDataProvider>(...): T;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值