为什么写示例代码?
1、自己写了一些Java代码,通过示例告诉别人该怎么用。
2、看到神奇的Java项目,通过编写示例学习怎么用。
对于我,最开始用的是下面的方案1。
方案1:创建类,然后写main函数
在类中写几个static函数,在 main 函数中有选择的调用,然后执行代码,看运行结果。运行结果来自哪里?来自System.out.println
。
但是这种方式要经常更换 main 函数中的代码。所以,后来优化为,写多个类,每个类都有 main 函数,尽量保证代码少改动。这也有问题,就是类太多。
后来,在用 junit 写了一堆单元测试代码后,我发现 junit 可以完美应对写示例代码的需求。
方案2:使用 junit 单元测试框架
我现在用的 Intellij IDEA IDE 很好的集成了junit。在一个类中写一堆用@Test
注解的函数,随便一个函数中鼠标右击,就有执行这个函数的选项。
举个简单的使用示例。
第一步,用 Intellij IDEA 创建一个基于 gradle 的 java 项目。
第二步,将 build.gradle 中依赖
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
修改为:
dependencies {
compile group: 'junit', name: 'junit', version: '4.12'
}
我们的目的不是写单测代码,而是示例代码。把testCompile
改成compile
,这样就可以在main/java
目录中使用 junit 了。
第三步,写个示例:
import org.junit.Test;
public class Demo {
@Test
public void test_01() {
System.out.println(1+1);
}
@Test
public void test_02() {
System.out.println(1+2);
}
}
搞定。
方案3:在方案2的基础上引入lombok和slf4j
lombok和slf4j的使用可以参考我的这两篇文章:
对于这个方案,build.gradle 中的依赖配置如下:
compile group: 'org.projectlombok', name: 'lombok', version: '1.18.0'
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'
compile group: 'log4j', name: 'log4j', version: '1.2.17'
compile group: 'junit', name: 'junit', version: '4.12'
在 resources 目录中增加 log4j 的配置文件log4j.properties,内容如下:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
可根据需要修改。
方案4: 自定义 log 函数
方案3中引入了日志框架,但是配置起来有点麻烦。我们可以自定义一个日志方法。可参考 一个自定义的 Java 工具类。