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


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

排除法最后只能是放置部署文件時未包括多出來的$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的情況

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM