java静态导入
2017-11-23 12:33
246 查看
一、静态导入
在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时,可以使用静态导入(在API中的类和你自己的类上,都可以使用该特性)。
静态导入前代码实例:
静态导入后的代码实例:
静态导入常例
对于静态导入,一定要遵循两个规则:
不使用*(星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
方法名是具有明确、清晰表象意义的工具类。
具有明确、清晰表象意义的工具类,JUnit 4 中使用的静态导入的例子
使用静态导入的几条原则:
你必须说import static, 不能说static import。
提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。
你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。
在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时,可以使用静态导入(在API中的类和你自己的类上,都可以使用该特性)。
静态导入前代码实例:
public class Static { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); System.out.println(Integer.toHexString(42)); } }
静态导入后的代码实例:
import static java.lang.System.out; import static java.lang.Integer.*; public class StaticImport { public static void main(String[] args) { out.println(MAX_VALUE); out.println(toHexString(18)); } }
静态导入常例
package cn.edu.scau.mk.testdemo; import static java.lang.System.out; import static java.lang.System.*; /** * * @author MK */ public class TestDemo { public static void main(String[] args) { out.println("out"); err.println("err"); } }
二、静态导入的规则
滥用静态导入实例import static java.lang.Double.*; import static java.lang.Math.*; import static java.lang.Integer.*; import static java.text.NumberFormat.*; public class Client { // 输入半径和精度要求,计算面积 public static void main(String[] args) { double s = PI * parseDouble(args[0]); NumberFormat nf = getInstance(); nf.setMaximumFractionDigits(parseInt(args[1])); formatMessage(nf.format(s)); } // 格式化消息输出 public static void formatMessage(String s){ System.out.println(" 圆面积是:"+s); } }
对于静态导入,一定要遵循两个规则:
不使用*(星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
方法名是具有明确、清晰表象意义的工具类。
具有明确、清晰表象意义的工具类,JUnit 4 中使用的静态导入的例子
import static org.junit.Assert.*; public class DaoTest { @Test public void testInsert(){ // 断言 assertEquals("foo", "foo"); assertFalse(Boolean.FALSE); } }
使用静态导入的几条原则:
你必须说import static, 不能说static import。
提防含糊不清的命名static成员。例如,如果你对Integer类和Long类执行了静态导入,引用MAX_VALUE将导致一个编译器错误,因为Integer和Long都有一个MAX_VALUE常量,并且Java不会知道你在引用哪个MAX_VALUE。
你可以在static对象引用、常量(记住,它们是static 或final)和static方法上进行静态导入。
相关文章推荐
- java static import 静态导入
- Java静态导入
- 黑马程序员---java基础加强_可变参数和静态导入
- Java基础之静态导入的使用
- java静态导入和非静态导入
- 08_Java基础_内部类_静态导入_增强for循环
- java JDK1.5新特性(一) [静态导入] [可变参数] [增强for] [自动装箱拆箱] [枚举]
- Java基础加强:静态导入及可变参数和增强for循环 ,基本数据类型的自动拆箱和装箱
- JAVA 静态导入
- [java]静态导入
- JAVA之Myeclipse中Junit、静态导入、枚举和单例设计模式
- java-jdk1.5静态导入和增强循环
- JAVA静态导入(inport static)详解
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(一)【静态导入、可变参数、增强for循环】
- Java 静态导入
- java新特性之静态导入、自动装箱和拆箱、增强for循环、可变参数、枚举
- java包的静态导入
- Java静态导入(import static)
- java静态导入
- java(18) - 枚举类型和静态导入