在头部使用的imoirt static ***方式叫做静态引入,在Java SE 1.5.0(JDK 5)引入的特性。

官方文档的介绍:

为了访问静态成员,有必要限定它们来自的类的引用。例如,必须这样使用:

double r = Math.cos(Math.PI * theta);

为了解决这个问题,人们有时会把静态成员放到一个接口中,并从这个接口继承。这是一个坏主意。事实上,这是一个坏主意,它的名字是:Constant Interface Antipattern(参见Effective Java Item 17)。问题是一个类的另一个类的静态成员的使用仅仅是一个实现细节。当一个类实现一个接口时,它就成为这个类的公共API的一部分。实现细节不应泄漏到公共API中。

静态导入构造允许无限制地访问静态成员, 而不从包含静态成员的类型继承。相反,该程序单独导入成员:

import static java.lang.Math.PI;

或集体:

import static java.lang.Math.*;

一旦静态成员导入了,他们可以这样使用:

double r = cos(PI * theta);

静态导入声明类似于正常的导入声明。如果正常的进口声明从包装中导入类别,允许它们在没有包装资格的情况下使用,静态导入声明从类别导入静态成员,允许它们在没有类别资格的情况下使用。

那么什么时候应该使用静态导入? 非常谨慎!只有当你试图声明本地副本的常量或滥用继承(Constant Interface Antipattern)时才使用它。换句话说,当你需要频繁访问一个或两个类的静态成员时使用它。如果过度使用静态导入功能,则可能导致程序无法读取且无法维护,从而导致您导入的所有静态成员污染其名称空间。你的代码的读者(包括你,在你写了几个月后)不会知道静态成员来自哪个类。全部导入从一个类的静态成员可以是特别有害的可读性; 如果只需要一个或两个成员,请单独导入它们。使用适当的静态导入可以使程序更具可读性,通过删除重复类名称的写法。

参考:

https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

https://www.cnblogs.com/xd502djj/archive/2012/06/18/2553925.html

http://blog.csdn.net/xyz_fly/article/details/8178104

Java Static Import的用法的更多相关文章

  1. 【转载】java static 关键字的四种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...

  2. [java]static关键字的四种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...

  3. Java关键字之static的典型用法分析

    static关键字是java中非常重要的一个关键字,用的好的话可以提高程序的运行性能,优化程序结构.接下来我们来总结一下static关键字及其用法.1.static变量 static变量也称作静态变量 ...

  4. Java中static作用及用法详解(转)

    1.1概述: static是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存 ...

  5. Java中import及package的用法

    有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 import 会让编译器把所 import 的程式通通写到编 ...

  6. java中this的用法?

    2008-07-28 08:10cztx5479 | 分类:JAVA相关 | 浏览4533次 java中this的用法? import java.awt.*; import java.awt.even ...

  7. JDK1.5新特性(二)……Static Import

    援引 Static Import - This facility lets you avoid qualifying static members with class names without t ...

  8. 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法

    装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...

  9. Java语言Socket接口用法详解

    Socket接口用法详解   在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...

随机推荐

  1. LeetCode(307) Range Sum Query - Mutable

    题目 Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclus ...

  2. 网络流之Dinic算法

    初学网络流.存一下Dinic板子. 复杂度O(n^2*m) UVA - 1515 Pool construction 把每个草地与 S 相连,花费为dig,每个洞与 T 相连,花费为 然后对于每个两个 ...

  3. ACM 深度优化搜索算法小总结

    深度优化搜索算法的本质:就是从一状态不断转移,如果无法转移了就需要返回上一个状态,知道找到解为止. 其核心:递归函数 基本模型: dfs(int i, int j) { //控制结束条件 //进行状态 ...

  4. loj2021 「HNOI2017」大佬

    there #include <algorithm> #include <iostream> #include <cstring> #include <cst ...

  5. day05_03 字符串格式化

    pycharm小技巧,一般情况下都需要在代码前注释以下作者以及创建日期 但是如何让软件默认生成呢? 格式化输出 可以用占位符 %s     string的缩写 #__author:Administra ...

  6. 03-python进阶-爬虫入门-正则

    [urllib and urllib2] 这是两个python的网络模块 内置的 提供很好的网络访问的功能. #!coding:utf-8 import urllib2 res = urllib2.u ...

  7. Linux 使用 yum 查看安装的软件包

    Linux系统下yum命令查看安装了哪些软件包: $yum list installed //列出所有已安装的软件包 yum针对软件包操作常用命令: 1.使用YUM查找软件包 命令:yum searc ...

  8. CCF认证题 搜索题

    栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能 ...

  9. 九度oj 题目1416:猴子吃坚果

    题目描述: 动物园的猴子吃坚果的顺序都是按强壮程度来定的,最强壮的吃完才能轮到下一个,现在我们给出各个猴子的名字,强壮程度,吃饱的量,然后查询对应的猴子必须要扔多少坚果才可以轮到. 输入: 输入有多组 ...

  10. 【Luogu】P2709小B的询问(莫队算法)

    题目链接 md,1A率等于0. 烦死. 终于搞到一道莫队了qwq. 先对区间分块再按照块编号为第一关键字,右端点为第二关键字排序,然后每次端点移动1乱搞. 然后……就wa了. 然后有很多细节需要注意q ...