1. 程式人生 > >Java-編譯後出現$1.class、$2.class等多個class文件

Java-編譯後出現$1.class、$2.class等多個class文件

etc 多個 cte 結果 rda this bject row temp

部署代碼的時候,由於自身技術不精和疏忽,導致查詢數據沒有正常顯示,

排除法最後只能是放置部署文件時未包括多出來的$class文件。放上去之後果然好使了,才記錄下這個問題。。。

這是因為在我們寫的類中存在匿名類


對於接口和抽象類來說, 不能被實例化。

例子:

SysUserBean sysUserBean = this.jdbcTemplate.queryForObject(sql,
new Object[]{loginName,password},
new RowMapper<SysUserBean>(){
public SysUserBean mapRow(ResultSet rs, int rowNum) throws SQLException {
SysUserBean sysUserBean = new SysUserBean();
sysUserBean.setUserId(rs.getInt("User_Id"));
sysUserBean.setCreateUserId(rs.getInt("Create_User_Id"));
sysUserBean.setCreateTime(rs.getTimestamp("Create_Time"));
return sysUserBean;
}
});

當一個類文件編譯之後有很多類名字中有$符, 比如Test.class, Test$1.class, Test$2.class, Test$MyTest.class
$後面跟數字的類就是匿名類編譯出來的結果.Test$MyTest.class則是內部類MyTest編譯後得到的。

在類SysUserDaoImpl中的getLoginUser方法出現new RowMapper<SysUserBean>()類似的情況,

我們在編譯類文件SysUserDaoImpl的時候,就會出現$1.class,$2.class的情況

Java-編譯後出現$1.class、$2.class等多個class文件