`
RednaxelaFX
  • 浏览: 3052447 次
  • 性别: 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.方法名()存取数据,每个方法都有对应的注释,快速上手!

    Spring boot工具类静态属性注入及多环境配置详解

    在静态工具类中,使用了public static的成员变量来存储配置信息,使用非静态的set方法将配置信息注入到成员变量中。其他类可以通过公有的静态get方法来获取这些配置信息。 在上面的代码中,使用了MongoConfig类来...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

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

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

    Java中的静态变量静态方法静态块与静态类.docx

    静态方法通常是 public 的,作为工具类的工具方法出现。 例如: ```java public class StaticExample { public static void setCount(int count) { if (count > 0) { StaticExample.count = count; } } ...

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

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

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    一些java常用的工具类

    首先,工具类通常包含静态方法,这些方法不依赖于类的实例,可以直接调用,减少了对象创建的开销。这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的StringUtils、ArraysUtils等,它们提供了字符串...

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

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

    java mail工具类

    创建JavaMail工具类时,可以考虑将常见的邮件操作封装为静态方法,如`sendEmail(String from, String to, String subject, String body)`,这样方便其他模块调用。 12. **测试和调试**: 开发完成后,应进行充分...

    java静态内部类(嵌套类)

    ### Java静态内部类(嵌套类)详解 #### 一、静态内部类概念与特性 在Java编程语言中,静态内部类(也被称为嵌套类)是一种特殊的内部类形式,它通过`static`关键字来定义。与普通内部类相比,静态内部类具有以下...

    java各种工具类-非常齐全

    在Java中,工具类通常是封装了常见操作的静态方法集合,便于开发者在不同项目中复用。本资源包含了一系列全面的Java工具类,涵盖了多个核心领域,如日期处理、字符串操作、文件管理、XML和JSON解析以及HTTP请求等。 ...

    Java Https工具类,Java Https Post请求

    这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...

    常用Java工具类

    在Java编程领域,工具类(Utility Class)是包含各种实用函数的静态类,它们提供了一种简化编程任务的方式。以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理...

    JAVA 工具类 项目

    在Java编程中,工具类(Utility Class)是包含静态方法的类,这些方法通常执行某种通用操作或提供一些辅助功能。这些工具类可以极大地提高代码的可读性和可重用性,减少代码冗余,使得开发者能更专注于业务逻辑。在...

    牛逼的java常用工具类

    在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能极大地提高开发效率,减少代码量,使程序更加健壮。下面,我们将详细探讨一些可能包含在...

    java常用工具类封装

    在Java编程中,工具类(Util Classes)是包含各种实用方法的静态类,它们提供了一种简化常见任务的方式。"java常用工具类封装"是指将常见的功能如线程管理、数据解析、第三方库集成等进行封装,以提高代码的可重用性...

    java后台微信支付工具类

    Java后台微信支付工具类是开发微信App支付时不可或缺的一部分,它包含了处理支付请求、响应以及与微信支付服务器交互的关键逻辑。微信支付是一个安全且广泛使用的支付方式,它允许用户通过微信应用程序进行线上交易...

    50个左右的JAVA工具类,相对比较全

    在Java中,工具类通常包含静态方法,不涉及实例化,它们提供的功能包括但不限于字符串处理、日期时间操作、集合操作、数学计算、IO流处理、网络通信等。下面将对这些常见的工具类及其功能进行详细介绍: 1. **...

Global site tag (gtag.js) - Google Analytics