已采納回答 / 花絕世
你是說為什么注解能做到這個(gè)吧。官方定義的,類似于在代碼中打一個(gè)標(biāo)記,有分編譯時(shí)和運(yùn)行時(shí)。對(duì)注解進(jìn)行解析的代碼在編譯器和運(yùn)行時(shí)中,簡(jiǎn)單說就是編譯器和運(yùn)行時(shí)發(fā)現(xiàn)類似的@xxx就看看是不是有對(duì)應(yīng)的注解類型,有就對(duì)其進(jìn)行相應(yīng)的處理。至于如何去找這個(gè)注解標(biāo)記,那就去看看編譯器和jvm的源碼了,一般學(xué)習(xí)不用糾結(jié)。就好比定義一個(gè)整型變量就是用int,這就是語(yǔ)法!如果第三方的話,一般是屬于運(yùn)行時(shí)注解,通過反射調(diào)用的。即通過反射調(diào)用某個(gè)方法,加載某個(gè)類等等操作的時(shí)候,獲取注解信息(反射api有提供方法獲?。缓筢槍?duì)相應(yīng)的...
2016-06-17
最贊回答 / 慕巴拉克
舉例:在重寫父類的onCreate時(shí),在方法前面加上@Override 系統(tǒng)可以幫你檢查方法的正確性。@Overridepublic void onCreate(Bundle savedInstanceState){…….}這種寫法是正確的,如果你寫成:@Overridepublic void oncreate(Bundle savedInstanceState){…….}編譯器會(huì)報(bào)如下錯(cuò)誤:The method oncreate(Bundle) of type HelloWorld must overr...
2016-05-31
最新回答 / 誰(shuí)的流年浮了塵
比如說在spring aop中,當(dāng)com.*.service包下的某些方法需要攔截,某些方法不需要攔截時(shí)你就可以自定義一個(gè)注解來(lái)將這些方法同需要攔截的方法區(qū)分開來(lái),這樣在定義切入點(diǎn)(Pointcut)的時(shí)候就很容易書寫 ?例子:@Pointcut("execution(* com.maheng.service..*.*(..))") ? ?@Pointcut("pc1() && !@annotation(com.maheng.aop.Without)") ? ? ?前者會(huì)對(duì)所有方法進(jìn)行攔截...
2016-05-04
最新回答 / Mark_G
百度到答案了,windows-->perference-->java-->compiler-->改為6.0右鍵項(xiàng)目--》build path--》configure build path--》java—》compiler--》更改為6.0解決了
2016-05-03
已采納回答 / shine_yao
項(xiàng)目右鍵==》property==》java?Compiler==》compiler compliance level設(shè)置大于1.5
2016-04-15
已采納回答 / vcfvct
感覺annotation就是給你需要的類、field,method之類的加上元信息,這樣你方便你自己parse。個(gè)人比較喜歡把custom annotation跟Spring的@Component一起使用,這樣在spring bootstrap的時(shí)候可以通過applicationContext.getBeansWithAnnotation(YourCustomAnnontation.class);直接拿需要的annotation class(Bean),很方便, 可以做很多事情。
2016-03-08