请诸位看这段代码,如果runtimeDatabase 为MYSQL或H2,标注1的那行代码是否会执行。
final RuntimeDatabase runtimeDatabase = Latkes.getRuntimeDatabase();
switch (runtimeDatabase) {
case MYSQL:
case H2:
case MSSQL:
1、 repositoryClass = (Class<Repository>) Class.forName("org.b3log.latke.repository.jdbc.JdbcRepository");
break;
case NONE:
2、 repositoryClass = (Class<Repository>) Class.forName("org.b3log.latke.repository.NoneRepository");
break;
default:
throw new RuntimeException("The runtime database [" + runtimeDatabase + "] is not support NOW!");
}
如果你回答不会执行,那就牢牢记住这句话: 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句,所以runtimeDatabase 无论是MYSQL,H2还是MSSQL,标注1的那段都会执行。