加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用InterfaceType进行对象初始化

发布时间:2020-12-15 04:12:55 所属栏目:Java 来源:网络整理
导读:我刚接触 java编程语言.我在c#中编程了两年.当我浏览java程序时,我发现代码如下. ArgumentParser parser = ArgumentParsers.newArgumentParser("text"); 其中ArgumentParser是一个InterfaceType而ArgumentParsers是一个类.但我在ArgumentParsers中找不到Argu
我刚接触 java编程语言.我在c#中编程了两年.当我浏览java程序时,我发现代码如下.

ArgumentParser parser = ArgumentParsers.newArgumentParser("text");

其中ArgumentParser是一个InterfaceType而ArgumentParsers是一个类.但我在ArgumentParsers中找不到ArgumentParser的任何实现.我们可以通过使用一个不实现该接口的类来初始化该对象来创建一个interfacetype对象.
我不知道c#中有可能.请帮我解释一下

谢谢

解决方法

您只是在ArgumentParsers类中调用静态方法.您应该查看ArgumentParsers.newArgumentParser的实现,以查看使用了哪种ArgumentParser实现.

这也不是Java特有的.例如,像File.OpenReadXmlReader.Create这样的方法都使用返回类型声明,这些类型是抽象类 – 对于接口也是如此.

例如,如果您想将Java代码转换为C#,这将是有效的:

public interface IArgumentParser
{
    Configuration Parse(string[] arguments);
}

public static class ArgumentParsers
{
    public static IArgumentParser(string file)
    {
        return new FileArgumentParser(file);
    }
}

internal class FileArgumentParser : IArgumentParser
{
    private readonly string file;

    internal FileArgumentParser(string file)
    {
        this.file = file;
    }

    public Configuration Parse(string[] arguments)
    {
        // Presumably use the file somewhere...
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读