`
RednaxelaFX
  • 浏览: 3015349 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

Java 8与静态工具类

    博客分类:
  • Java
阅读更多
以前要在Java里实现所谓“静态工具类”(static utility class)的话,通常会做两件事:
1、把class声明为final,以免被继承;
2、声明一个private的空参数列表构造器,以免外部能创建该类的实例。

根据Java SE 8版的Java语言规范,9.4小节,现在Java 8允许在接口上声明静态方法了。接口默认而且必须是抽象的,所以不能用final来阻止别人继承或实现这个接口,不过反正是抽象的也不能直接实例化,用来做静态工具类挺好的。

所以现在可以这样了:
package my.util;

public interface StringUtils {
  /* 默认public */ static boolean endsWith(String str, String suffix) {
    // ...
  }
}


多一种选择 
分享到:
评论
7 楼 奔跑的小牛 2016-11-08  
swb3386775 写道
问个小白点的问题。
静态工具类一般用来干嘛?

这些类的方法,不用new就可以直接使用,一般是工具才这么干
6 楼 demondevilhades 2016-01-07  
为了避免外部能创建该类的实例,还在构造器里面扔一个Exception出来
5 楼 swb3386775 2015-01-08  
问个小白点的问题。
静态工具类一般用来干嘛?
4 楼 zxmzfbdc 2014-04-09  
subchen 写道
经常这么干:
public abstract class StringUtils  {

   public static boolean endsWith(String str, String suffix) {  

   }
}



Spring中有大量这样的例子
3 楼 subchen 2014-04-09  
经常这么干:
public abstract class StringUtils  {

   public static boolean endsWith(String str, String suffix) {  

   }
}

2 楼 RednaxelaFX 2014-03-26  
zxmzfbdc 写道
不清楚这么做有什么好处,接口的作用变得复杂了。还不如再顶一个别的什么东西,不同于类,也不同于接口,就是供静态调用的。

没啥特别的好处。就是多种选择,可以把某些代码写短一点而已。
您说的是类似C#的static class…是啊有那个的话多好。但是Java非要坚守面向对象所以不提供这种语言结构(但Java其实又已经不很OO了…)。
1 楼 zxmzfbdc 2014-03-25  
不清楚这么做有什么好处,接口的作用变得复杂了。还不如再顶一个别的什么东西,不同于类,也不同于接口,就是供静态调用的。

相关推荐

    java 生成静态页面 工具类

    java 生成静态页面 工具类java 生成静态页面 工具类

    可能是方法最全Redis静态工具类(RedisUtils.java)

    可能是最全的Redis静态工具类,拿来即用,随时随地RedisUtils.方法名()存取数据,每个方法都有对应的注释,快速上手!

    腾讯云对象存储静态工具类(CosUtils.java),快速上手!!!

    腾讯云对象存储静态工具类,满足日常工作使用,每个方法都有注释,快速上手!记得先引入Maven依赖,在配置文件中配置对象存储所属参数!

    阿里云对象存储静态工具类(AliOSSUtils.java)快速上手!!!

    根据官网和网上分享的代码自己整理了一个阿里云OSS工具类,自动创建标准公开权限的存储空间,支持上传图片,音频,视频,PDF各种文件,批量上传,上传后支持在线预览,文件路径处理,浏览器文件下载(支持源文件中文...

    java连接SqlServer完整代码,工具类,jdbc

    java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...

    精心整理的java常用的26个工具类-独家收藏

    工具类,顾名思义,就是使用的工具,哪里有需要就往哪里添加它,当遇到非静态的工具类,调用的时候还要去new一下。 用static修饰的都是属于类成员,类成员可以直接调用的,不是用static修饰的,必须使用类的对象去...

    java常用工具类的使用

    在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...

    java工具类 MD5加密

    java开发工具类MD5加密算法-静态单例。

    JAVA SHA256Util工具类

    SHA256Util 是一个 Java 工具类,提供静态方法 getSHA256 来计算字符串的 SHA-256 散列值。这个类利用 Java 的 MessageDigest 类,将输入字符串转换成十六进制格式的散列值。 适用人群 软件开发人员需要在应用程序...

    python实现静态方法工具类

    在这个文件中,可以像 Java 中的静态方法一样,定义函数或类方法,只需在函数名或方法名前加上 @staticmethod 或者不加,即可定义成静态方法,无需实例化相关对象即可直接调用。 在 Python 中,可以使用模块(Module...

    Hutool (Java基础工具类).rar

    一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 在开发的过程中,我们需要一些工具类实现某些特殊处理,例如字符串格式处理,日期...

    LruCache工具类

    Lru缓存 需要仔细研究 一种高效率的缓存设置机制

    javautil工具类大全

    自己总结的java工具类,包括异常、文件、字符串、时间、http、搜索、进程、poi、反射、邮件、静态页面、spring、redis、权限递归、加解密,签名、校验码、json等等

    java代码笔记2010-06-01:Java内部类 静态内部类 局部内部类 明明内部类;StringBuffer reverse的使用;

    NULL 博文链接:https://jayxigua.iteye.com/blog/686371

    java一键生成二维码,封装好的工具类

    压缩包内为java源码,是封装好的一个工具类,类中提供了多重载的静态方法,包过生成二维码和读取二维码,可以选择二维码大小和生成目录或流的形式,可以存本地,也可以通过方法直接返回给前端

    分布式ID雪花算法 工具类.rar

    分布式系统,全局唯一ID,高效,永不重复。相比较uuid,雪花id是按照时间有序生成的,方便sql优化

    Java读取资源文件工具类--ReadConfigation(java源码)

    * 静态工厂方法 * @return 返还ReadConfigation 类的单一实例 */ synchronized public static ReadConfigation getInstance() { return m_instance; } /** * 读取一特定的属性项 * * @param ...

    Java字节码转换工具—Retrotranslator

    我测试了一个前端时间开发的一个网络通讯工具,其中用到了很多java15的特性,例如泛形,增强循环,静态引入等功能,以及jdk15独有的类文件,例如StringBuilder等。通过该工具进行转换,可以完美的运行在java14环境...

    单元静态测试工具教学

    可以帮助完成测试计划、跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具

    static静态变量使用@Value注入方式.md

    MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值

Global site tag (gtag.js) - Google Analytics