美文网首页
java接口实例化问题

java接口实例化问题

作者: 李念阳 | 来源:发表于2020-02-23 12:14 被阅读0次

    在java中接口不能直接实例化。但是有的时候,我们会看到这种匿名内部类实例化的代码。如下:

    public interface PersonConfig {
        String get(String key);
    }
    public interface BoyConfig extends PersonConfig {
        BoyConfig DEFAULT = k -> null;
    }
    

    BoyConfig DEFAULT = k -> null
    这行代码比较难读,运用了java匿名内部类和lamda这两种技术,了解到这些以后,我们可以尝试拆分一下
    第一步:不用lamda语法

    public interface BoyConfig extends PersonConfig {
        BoyConfig DEFAULT = new BoyConfig() {
            @Override
            public String get(String key) {
                return null;
            }
        };
    }
    

    第二步:不用匿名内部类

    public class BoyConfigImpl implements BoyConfig{
        @Override
        public String get(String key) {
            return null;
        }
    }
    public interface BoyConfig extends PersonConfig {
        //    BoyConfig DEFAULT = new BoyConfig() {
    //        @Override
    //        public String get(String key) {
    //            return null;
    //        }
    //    };
        BoyConfig DEFAULT = new BoyConfigImpl();
    }
    

    经过上述解剖以后,这段代码就变得清晰多了。

    相关文章

      网友评论

          本文标题:java接口实例化问题

          本文链接:https://www.haomeiwen.com/subject/wptifhtx.html