zoukankan      html  css  js  c++  java
  • java静态导入

    一、静态导入

          在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方法上进行静态导入。
  • 相关阅读:
    Docker 部署 ElasticSearch-Head
    linux安装kibana-7.6.1
    CentOS部署ElasticSearch7.6.1集群
    linux 安装mysql 8
    Docker安装Mysql,并搭建一主一从复制集群,一主双从,双主双从集群
    linux 挂载光盘,rmp,yum
    git多账号登录问题
    js动态添加事件-事件委托
    yii2 RESTful api的详细使用
    yii2 ActiveRecord多表关联以及多表关联搜索的实现
  • 原文地址:https://www.cnblogs.com/maokun/p/7069262.html
Copyright © 2011-2022 走看看