@Service("Service")
public class ServiceImpl implements Service{
@Autowired
private Mapper Mapper;
@Override
public Tsysdic get(Integer Id) {
mapper.select(Id);
}
@Override
public void delete(Integer Id) {
//呼叫get方法,我當時想的是,我得注入Service,然后調方法,感覺有點別扭,我就new ServiceImpl(),拿到個物件,然后去呼叫get方法,程式報錯,mapper.select(Id)這段報錯空指標
//解決方法是 直接能呼叫get
get(Id);
}
}
這個實體方法get(),為什么可以直接呼叫呢,應該是靜態的才能直接呼叫吧。
我是不是哪里搞亂了,求解答
uj5u.com熱心網友回復:
你說的沒錯,但get(Id),是this.get(Id),this又是表示當前物件,所以對于一個類的所有普通方法來說,普通方法間可以相互呼叫。希望對你有幫助哦!uj5u.com熱心網友回復:
啥意思?呼叫get方法不就是呼叫 public Tsysdic get(Integer Id) 這個方法嗎?delete方法又不是static方法,為啥不能直接呼叫get方法,如果delete是static方法,那才需要get也是static才能呼叫(即靜態方法不能直接呼叫非靜態方法,但是現在是,delete和get都不是靜態方法,所以不存在你說的問題)
uj5u.com熱心網友回復:
意思是,this沒有顯式的書寫出來?uj5u.com熱心網友回復:
方法是實體方法呀,不得有個實體物件去呼叫嗎,直接就能呼叫了嗎
uj5u.com熱心網友回復:
this呼叫那肯定是沒有問題了,為什么覺得這都有問題呢。不過這樣呼叫的get方法,如果有spring切面則無效,因為this訪問的不是代理物件。如果希望用代理物件訪問的話,可以動態從beanFactory中獲取物件來呼叫。
uj5u.com熱心網友回復:
你都用spring了,你還在new我就不說啥了,這get還和靜態方法扯上去了,再去把se看幾遍吧uj5u.com熱心網友回復:
new個物件,調方法,怎么報空指標了,this和new都是物件吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/256543.html
標籤:Web 開發
