Java8 函数式编程初识之接口静态方法

在Java8 之前在接口中只能存在方法名,不能存在方法体,在Java8之后,在接口中可以存在静态方法体了.
下面以一个字符串工具类来说明这个新特性.
在Java7及以前,如果我们想写一个工具类,必须创建一个类,在里面写上相应的工具方法

//Java7 之前的写法
package cn.monoy.demos2;
public class StringUtil {
    public static boolean isNull(String src) {
        return src == null;
    }
    public static boolean isBlank(String src) {
        return src.trim().equals("");
    }
}

如果要调用工具类里面的方法,则需要实例化或者使用类名.方法名来调用

//Java7 及之前版本调用工具类的方法
package cn.monoy.demos2;
public class Main {
    public static void main(String[] args) {
        boolean res = StringUtil.isBlank(" ");
        System.out.println(res);
    }   
}

而在Java8中我们可以创建一个接口在接口中写相应的静态方法了.

//Java8 中在接口中写方法
package cn.monoy.demos2;
public interface IStringUtil {
    public static boolean isNull(String src) {
        return src == null;
    }
    public static boolean isBlank(String src) {
        return src.trim().equals("");
    }
}

调用也很简单

//Java8 中调用接口静态方法
package cn.monoy.demos2;
public class Main {
    public static void main(String[] args) {
        boolean res = IStringUtil.isBlank("");
        System.out.println(res);
    }   
}

使用接口来作为工具类,接口不能实例化的特性直接消灭了传统工具类必须私有化构造方法的冗余代码.解决了某些默认类实现了多个传统接口必须大量写空方法的问题.即我需要什么功能直接找相应的工具接口调用其中的方法即可,详细点说就是类A 只需要调用 接口B,C,D中的一个方法,但是必须实现B,C,D中所有方法的困境.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,550评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,868评论 19 139
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,049评论 0 2
  • 我是爱你的,你是自由的。
    citoyendumonde阅读 1,261评论 0 0

友情链接更多精彩内容