`
xiaoer_1982
  • 浏览: 1872260 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA中的静态导入

阅读更多

 1.使用方法
  package tips;
  
  public interface Constants {
  
    public static final int PORT_NUMBER = 90;
  
    public static final String APP_NAME = "DOOLY";
  
    public static class StaticNestedClass {}//子类
  
  }
  
  通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。 例如:
  
  import static tips.Constants.*;
  
  public class StaticImportTip {
  
    public static void main(String []args) {
  
      System.out.println(PORT_NUMBER);
  
      System.out.println(APP_NAME);
  
      System.out.println(StaticNestedClass.class);
  
    }
  
  }

2.注意事项   
  假如你决定使用静态导入特性,推荐单独地导入常量名,而不要使用通配符。因为这样做可以让人知道常量的来源。
  
  比如说在下面的代码片断中,一个开发人员查看了代码之后不知道DEFAULT_URL 和PORT_NUMBER从哪个类中导入的。
  
  import static tips.Constants.*;//注意是完全路径
  
  import static tips.gen.App.*;
  
  public class StaticImportTip {
  
    public static void main(String []args) {
  
      System.out.println(PORT_NUMBER);
  
      System.out.println(DEFAULT_URL);
  
    }
  
  }
  
  假如导入语句如下:
  
  import static tips.Constants.PORT_NUMBER;
  
  import static tips.gen.App.DEFAULT_URL;
  
  那么常量的来源就很明显了。

另外,

针对一个给定的包,不可能用一行语句静态地导入所有类的所有类方法和类变量。也就是说,您不能这样编写代码:

import static java.lang.*; // this does not compile!

如果一个本地方法,和一个静态导入的方法有着相同的名字,那么本地方法被调用。

谨慎地使用静态导入。因为静态导入使得类方法和类变量的定义位置变得模糊,所以加大了理解代码的难度。使用静态导入的原则是:限制静态导入的使用,不要在应用程序中普遍使用静态导入。



3.为什么要用静态导入,后果会怎样,好处又是什么?

静态导入使您不 用提供类名,这样做可以偷点儿懒,但也引入了不必要的混淆。正如 createDate 在何处定 义这个问题。如果您正在编写的某个类,需要调用多个外部类方法(可能几十个甚至更多),这样您或许有了使用静态导入的借口。但是,更好的方法是,弄明白为什么需要这么多的静态调用,或许您需要重新审视类的设计。

使用静态导入的可能理由之一是:简化对多个类常量的调用,而且这些类常量定义在一个地方。假设您创建了多个报表类,而且每个报表类都需要将换行符追加到输出,所以每个报表类都需要用到常 NEWLINE 就像 RosterReporter 中的定义:

static final String NEWLINE = System.getProperty("line.separator");

您不会希望在每个报表类中都重复定义这个常量。所以您可以创建一个新类,这个类的职责就是为了持有常量。稍后,它也可以持有别的常量,例如对任何报表类都适用的页面宽度。

package sis.report;

public class ReportConstant {

public static final String NEWLINE =

System.getProperty("line.separator");

}

在典型的报表类中,由于很多地方都需 要使用常量 NEWLINE ,所以您可以增加一个静态导入,这样可以使您的代码看起来干净 一些 [3]

package sis.report;

import junit.framework.TestCase;

import sis.studentinfo.*;

import static sis.report.ReportConstant.NEWLINE;


分享到:
评论

相关推荐

    Java的静态导入源代码

    在Java编程语言中,静态导入(static import)是一种特殊的导入方式,它允许程序员直接使用类中的静态成员,而无需每次都指定类名。这种特性在2004年发布的Java 5.0版本中引入,目的是为了提高代码的可读性和简洁性...

    java中静态导入机制用法实例详解

    Java中的静态导入机制是自Java 5版本引入的一项特性,旨在简化代码,特别是当频繁使用某个类的静态成员时。在传统的Java编程中,如果我们要引用一个类的静态成员,需要通过类名来限定,例如`ClassName.staticMember`...

    欧柏泰克:Java包的静态导入import static和import的区别

    Java中的静态导入是Java 5中引入的一项新特性,允许开发者在编写代码时更方便地使用静态方法和成员变量。下面我们来详细地了解Java中的静态导入和普通导入的区别。 静态导入(import static) 静态导入是使用...

    文件文件文件文件文件

    1. **静态导入(Static Import)**:在Java 5中引入的静态导入允许开发者直接引用类的静态成员,而无需指定类名。以前,我们需要写`Math.random()`,现在可以通过`import static java.lang.Math.random;`,然后直接...

    Java 静态导入与编译器语法设置(eclipse)

    在Java 5中,静态导入允许开发者在不指定类名的情况下直接使用类中的静态成员,如静态变量和静态方法。这使得代码更加紧凑,但也可能导致命名冲突,因此了解如何正确使用和管理静态导入至关重要。 首先,我们来看...

    oracle认证的java考试(22)

    ### Oracle 认证 Java 考试(22)知识点解析 #### 考点一:静态导入...综上所述,本次考试覆盖了 Java 中静态导入以及条件判断和字符串处理的相关知识点,对于理解 Java 语言的基本语法和编程实践具有重要意义。

    静态变量的导入以及集合的运用

    通过上述分析可以看出,合理使用静态导入可以极大地简化代码,提高开发效率。同时,熟练掌握集合框架中的各种数据结构及其操作方法对于编写高效、灵活的Java程序至关重要。希望本文能够帮助读者更好地理解和应用这些...

    静态的魔力:Java中静态方法和变量的深度解析

    #### 七、静态导入 Java允许通过`import static`语句来导入静态方法或变量,这样可以直接使用这些成员而不需要前缀类名。示例代码如下: ```java import static java.lang.Math.PI; public class CircleCalculator...

    静态导入so库文件

    本示例“静态导入so库文件”将详细介绍如何在Android Studio项目中实现这一过程。 首先,我们需要理解静态导入与动态导入的区别。在Android中,动态导入通常通过System.loadLibrary()方法完成,而静态导入则是在...

    xxxxdfgfdgfdgd

    - Java中的静态导入允许直接使用静态成员,而无需指定类名。 - 使用`import static`关键字进行静态导入。 - 示例代码如下: ```java import static java.lang.Math.PI; public class MyClass { public ...

    java实现在Excel中插入图片

    总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...

    JDK新特性之静态导入

    从JDK5.0之后,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。例如,如果在源文件的顶部,添加一条指令:  Java代码  import java.lang.System.*;  那么就可以使用System类的静态方法和...

    Java poi 实现excel导入导出

    在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...

    jsp中include指令静态导入和动态导入的区别详解

    JSP中的include指令有两种方式:静态导入和动态导入。了解它们之间的区别,对于开发高效且易于维护的Web应用至关重要。 首先,我们要了解什么是静态导入。在JSP中,静态导入是通过指令%@include file=...

    Poi+java实现表格导入导出

    在Java编程环境中,Apache POI库是一个非常实用的工具,它允许我们操作Microsoft Office格式的文件,特别是Excel工作簿。本篇文章将详细讲解如何利用Apache POI和Java来实现表格的导入与导出功能。 首先,我们需要...

    java导入Excel

    - **创建Workbook对象**:在Java中,Excel文件被表示为`Workbook`对象,可以通过`WorkbookFactory`类的静态方法`create()`从现有的Excel文件加载。 - **处理Sheet和Row**:`Workbook`包含一个或多个`Sheet`,每个`...

    Java导入excel文件

    在Java编程环境中,导入Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化测试等领域。本项目提供了一个完整的解决方案,帮助开发者实现这一功能。下面将详细解释这个Java项目中涉及的关键知识点,...

    java中带static关键字的程序内存分析

    6. **静态导入(Static Import)**: - Java允许使用`import static`语句,可以直接引用类的静态成员,提高代码可读性。 总的来说,`static`关键字在Java中有着广泛的应用,理解它的内存行为对于编写高效、无内存...

    java 后台管理静态html页面

    标题中的“Java 后台管理静态HTML页面”指的是在Java Web开发中,使用Java技术作为后端服务器,处理业务逻辑和数据操作,并提供接口给前端静态HTML页面进行数据交互。这种方式常用于快速构建后台管理系统,因为静态...

    在Eclipse中导入static元素Java开发Java

    其中,导入static元素是Java编程中一个重要的操作,它允许我们直接引用类中的静态成员,无需创建类实例。本篇文章将深入探讨如何在Eclipse中有效地导入static元素,并分享一些实用的开发技巧。 首先,我们需要理解...

Global site tag (gtag.js) - Google Analytics