### Question:
TableMetaCacheFactory { public static TableMetaCache getTableMetaCache(String dbType) { if (TABLE_META_CACHE_MAP.get(dbType) != null) { return TABLE_META_CACHE_MAP.get(dbType); } TableMetaCache tableMetaCache = EnhancedServiceLoader.load(TableMetaCache.class, dbType); TABLE_META_CACHE_MAP.putIfAbsent(dbType, tableMetaCache); return tableMetaCache; }  static TableMetaCache getTableMetaCache(String dbType);  }### Answer:
@Test public void getTableMetaCache() { Assertions.assertTrue(TableMetaCacheFactory.getTableMetaCache(JdbcConstants.MYSQL) instanceof MysqlTableMetaCache); Assertions.assertTrue(TableMetaCacheFactory.getTableMetaCache(JdbcConstants.ORACLE) instanceof OracleTableMetaCache); Assertions.assertEquals(TableMetaCacheFactory.getTableMetaCache(JdbcConstants.ORACLE), TableMetaCacheFactory.getTableMetaCache(JdbcConstants.ORACLE)); Assertions.assertEquals(TableMetaCacheFactory.getTableMetaCache(JdbcConstants.MYSQL), TableMetaCacheFactory.getTableMetaCache(JdbcConstants.MYSQL)); Assertions.assertThrows(EnhancedServiceNotFoundException.class, () -> { TableMetaCacheFactory.getTableMetaCache(NOT_EXIST_SQL_TYPE); }); }