DTNSim.java注释摘要(学习性质,有错漏的可能,红色为不明确部分)

public static final String BATCH_MODE_FLAG = "-b";

//批处理模式标记,final:终态,不可变化

public static final String RANGE_DELIMETER = ":";

//范围分隔符,用冒号

public static final String RESET_METHOD_NAME = "reset";

//重置方法名称

private static List<Class<?>> resetList = new ArrayList<Class<?>>();

//类名列表,在批次处理期间重置

System.exit(-1);

//暂停Java虚拟机

java.util.Locale.setDefault(java.util.Locale.US);

//为Java虚拟机实例设置默认语言环境:US(美国)。

//参数类型为 Localejava.util 中的方法:java.util.Locale.setDefault

//声明为 Localejava.util 中的字段java.util.Locale.US(用于表示国家/地区的有用常量)

if (args.length > 0) {

//与public static void main(String[] args) ,所以args.length 表示传入参数的个数

if (args[0].equals(BATCH_MODE_FLAG)) {
    batchMode = true;

//传入的第一个参数若为“-b”,则运行方式为批处理

int firstConfIndex = 0;

//与传入参数个数相关:个数为1,赋值1;否则赋值2

int nrofRuns[] = {0,1};

//二元数组

nrofRuns = parseNrofRuns(args[1]);

//private static int[] parseNrofRuns(String arg)

//第二个参数是二元数组

int guiIndex = 0;

guiIndex = Integer.parseInt(args[0]);

//第一个参数变为十进制,对应查错:NumberFormatException

String confFiles[];

confFiles = args;

//传入所有参数进入记录

initSettings(confFiles, firstConfIndex);

//private static void initSettings(String[] confFiles, int firstIndex)

//初始化相应的设置文件

long startTime = System.currentTimeMillis();

//系统产生一个当前的毫秒时间赋值给变量

Settings.setRunIndex(i)/(guiIndex);

//设置

resetForNextRun();

//public static void registerForReset(String className)

//下次运行重置
new DTNSimTextUI().start();

//开始

String.format("%.2f", duration)

//将变量duration的值转换成与"%.2f"同等格式的值

System.err.println("Caught at " + er.getStackTrace()[0]);

//调试异常时进行输出

//获得错误点的堆栈踪迹

Class<?> c = null;

//类列表

c = Class.forName(className);

//装载括号中的类,类似于new,对应查错:ClassNotFoundException

c.getMethod(RESET_METHOD_NAME);

//获取括号中的方法,对应查错:NoSuchMethodException

resetList.add(c);

//重置列表中添加一个新类

for (Class<?> c : resetList) {

//将resetList中的值一次取出赋给c

Method m = c.getMethod(RESET_METHOD_NAME);

m.invoke(null);

//method.invoke(owner, args):执行该Method.invoke方法的参数是执行这个方法的对象owner,和参数数组args,可以这么理解:owner对象中带有参数args的method方法。返回值是Object,也既是该方法的返回值。

//括号内为空值表示忽略该方法(但不是省略)

catch (Exception e) {

e.printStackTrace();

//打印出错误的出错位置及原因

arg.contains(RANGE_DELIMETER)

//传入参数包含范围分隔符

arg.substring(0, arg.indexOf(RANGE_DELIMETER))

//截取字符串中0与arg.indexOf之间的部分

//搜索字符串中的RANGE_DELIMETER(从0位开始)

private static void print(String txt) {

System.out.println(txt);

//打印文本至标准输出

 

posted @ 2012-03-23 15:26  尹瑜幼  阅读(379)  评论(0编辑  收藏  举报