Java中assert和静态导入的使用
最近一直在做测试,发现了一些JDK 1.5中的一些新的语法特性,在开发的时候确实省了不少时间,在此做简要的记录:
assert的用法
assert expression1; assert expression1:expression2;
如果expression1为true,则不抛出错误,程序正常运行,expression2也不会执行。
如果expression1为false,则抛出异常,程序中断跳出,expression2执行。
一般来说,不要在expression1、expression2中使用函数的返回值;
不要将其使用在public函数中检查输入参数,但可以用于private函数中检测输入参数。
public class AssertFoo {
public static void main(String args[]) {
//断言1结果为true,则继续往下执行
assert true;
System.out.println("断言1没有问题,Go!");
System.out.println("\n-----------------\n");
//断言2结果为false,程序终止
assert false : "断言失败,此表达式的信息将会在抛出异常的时候输出!";
System.out.println("断言2没有问题,Go!");
}
}
|
Assert主要是用在程序的调试中,不能因为有了assert而影响了程序的正常运行,相反,如果去掉assert机制后,程序应该可以实现正常的功能,通过一个简单的例子来说明如何使用assert。
Assert是在JDK 1.4中引入的新特性,编译的时候要使用java -source,执行的时候要使用java -ea。
在eclispse中执行的时候要配置run中的执行时所需要的参数,如图所示:

即在VM arguments中指定运行参数 -ea。
静态导入的使用
import static com.loojoy.assertdemo.StaticOperation.*;// 这是最重//要的
public class ClientConsole {
public static void main(String[] args) {
// assert 1 == 1;
// System.out.println("Finished");
println();
}
}
|
通常静态方法在使用的时候需要类名.属性名或这是方法名。但是使用了静态导入之后就可以直接使用方法,而不需要再使用类名做前缀了。Let's drink code,看代码是最好的学习方式。
public class StaticOperation {
public static void println(){
System.out.println(" 这是一个静态导入方法 :) ");
}
}
|
在这里需要注意的就是静态方法的导入方式 import static 包名.类名.*,这种方式,否则会报错。
<!--EndFragment-->
分享到:
相关推荐
`import`用于导入类或包,以便在当前文件中使用。 ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); } } ``` ##### ...
Java关键字和命名规范是Java编程语言中的基础概念,它们对于编写清晰、规范的代码至关重要。Java关键字是Java语言内置的、具有特殊用途的保留字,而命名规范则是关于如何给类、方法、变量等命名的约定。 ### Java...
泛型是Java 5.0中的一个重大改进,允许在类、接口和方法中使用类型参数,增强了类型安全性和编译时检查。泛型可以防止在运行时出现ClassCastException,并简化了集合操作。 2. **自动装箱与拆箱(Autoboxing/...
- `const`:保留关键字,尚未在 Java 中使用。 - `double`:双精度浮点型数据类型。 - `default`:用于 switch 语句中的默认分支。 - `do`:用于 do-while 循环。 - `extends`:用于继承。 - `final`:用于声明常量...
导入静态 org.junit.Assert.assertNotNull; 导入静态 org.junit.Assert.assertThat; 导入静态 org.junit.Assert.assertTrue; 导入静态 org.junit.Assert.fail; 导入 java.io.BufferedReader; 导入 java.io....
- 尽量使用静态导入,如`import static java.lang.Math.PI;`。 - 按照包的顺序排序导入语句,如`java.*`、`javax.*`、`org.*`等。 6. **异常处理**: - 避免空的`catch`块,提供至少有意义的错误信息。 - 使用`...
在集合框架中使用泛型,可以避免不必要的类型转换,并在编译时检测类型错误。例如,`List<String>` 定义了一个只能包含字符串的列表。 2. **枚举类型(Enums)** Java 5 引入了枚举类型,用于创建有限的常量集合。...
- **用途**:Java中的泛型允许在类、接口和方法中使用类型参数,从而实现类型安全的代码重用。 #### goto (保留字) 跳转 - **中文释义**:跳转 - **用途**:虽然`goto`是Java中的保留字,但实际上并未被用作关键字...
避免在公共API中使用`assert`等。 这些规约旨在提高代码的可读性、可维护性和团队协作效率,遵守这些规约能帮助开发者写出更高质量的Java代码,减少潜在的错误和后期维护的难度。对于阿里云而言,这样的规约能确保...
在Java中,`abstract`关键字不能单独使用于变量、构造器或初始化块,仅能用于类和方法。 ### access 访问控制是Java中一个核心概念,通过`public`、`protected`、`private`和`default`(包级访问)来限定类、方法...
`throws`声明可能抛出的异常,`transient`忽略序列化,`try-catch-finally`处理异常,`void`表示无返回值的方法,`volatile`保证多线程下的可见性和有序性,`while`循环,`width`和`yield`不在Java中使用。...
Java 中的关键字包括但不限于:abstract、assert、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、final、finally、float、for、if、goto、...
`import`关键字用于导入其他包中的类或接口,使得可以在当前类中使用它们。 **示例:** ```java import java.util.ArrayList; public class MyClass { public static void main(String[] args) { ArrayList...
泛型是Java5引入的新特性,它允许在类、接口和方法中使用类型参数,从而编写出更加灵活且类型安全的代码。泛型可以显著减少代码重复,并提高代码的可读性和可维护性。 #### Goto (跳转) 尽管Java不支持传统的`goto...
Java 共有 50 多个关键字,它们包括但不限于 `abstract`、`assert`、`boolean`、`break`、`byte`、`case`、`catch`、`char`、`class`、`const`(虽然未使用)、`continue`、`default`、`do`、`double`、`else`、`...
在Java编程语言中,关键字是具有特殊含义的保留词汇,它们是编程语法的重要组成部分,用于定义程序结构和控制流程。了解这些关键字的含义对于编写有效的Java代码至关重要。下面,我们将详细探讨Java中的所有关键字...
如何在程序中使用它们** 通过`System.setProperty()`方法设置系统属性,使用`System.getProperty()`获取系统属性。 **七、简述properties文件的结构和基本用法** .properties文件通常用于存储配置信息,每一行...
在这个例子中,我们导入了JUnit的Assert静态类和@Test注解。`testExample`方法标记为一个测试用例,其中使用了Hamcrest的`assertEquals`方法来进行断言。当运行这个测试类,Eclipse会自动执行所有的测试方法,并显示...