Mybatis 測試類調(diào)用接口方法報(bào)錯(cuò):為什么無法從靜態(tài)上下文中引用非靜態(tài)方法?

Mybatis 測試類調(diào)用接口方法報(bào)錯(cuò):為什么無法從靜態(tài)上下文中引用非靜態(tài)方法?

idea mybatis 測試類無法調(diào)用接口方法的原因

在使用 idea 進(jìn)行 mybatis 測試時(shí),調(diào)用接口方法出現(xiàn)報(bào)錯(cuò)的情況,原因可能是:

錯(cuò)誤提示

當(dāng)在測試類中調(diào)用 usermapper 接口的 list() 方法時(shí),可能會(huì)出現(xiàn) “non-Static method ‘list()’ cannot be referenced from a static context” 錯(cuò)誤。

原因分析

該錯(cuò)誤提示表明,無法從靜態(tài)上下文中引用非靜態(tài)方法。在測試類中,main() 方法是一個(gè)靜態(tài)方法,而接口中的方法是非靜態(tài)的,導(dǎo)致了沖突。

解決方法

要解決此問題,需要將 usermapper 接口的 list() 方法聲明為靜態(tài)的。修改后的代碼如下:

public interface UserMapper {     static List<User> list() {         // ...     } }

靜態(tài)方法可以從靜態(tài)上下文中調(diào)用,從而解決錯(cuò)誤。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享