Java注解是在Java SE 5中引入的一個新特性,它們是一種元數據的形式,可以提供額外的信息給編譯器、運行時等。在Java中有兩種常見的注解:source注解和class注解。
source注解是只在源代碼級別存在的注解,它們不會被編譯到class文件中,這樣的注解可以用來解釋代碼。這種注解通常用于build tool,如Maven、Gradle等。這些注解可以在IDE中被看到,但沒有實際的運行時效果。如果我們需要在代碼中使用這些注解,我們應該在類、方法、或者字段上使用它們。
@Deprecated public class MyClass { // ... }
在這個例子中,我們使用了source注解"@Deprecated"來標記這個類過時了。這樣在IDE中,當其他開發人員使用到這個類時,IDE就會提示該類已經過時,建議使用其他類或方法來替代。
而class注解則會在編譯時被處理,并且可以在運行時使用。這種注解可以用于指定代碼邏輯、創造運行時的行為。這類注解包含了一些被Java語言規范所支持的注解,例如@Overrides、@SuppressWarning等。這些注解可以通過在類、方法、或者字段上使用來起到不同的作用。
@Service public class MyService { @Autowired private MyDao myDao; // ... }
在這個例子中,我們使用了class注解"@Service"來標志這個類是一個服務類,需要被注入到Spring容器中。另外,我們還使用了class注解"@Autowired"來注入一個Dao對象,這個就需要Spring在運行時將對象注入到MyService對象當中。
總之,Java注解是Java語言中的一個強大的功能,可以提供很多有用的信息給開發人員、編譯器、運行時等。我們需要了解注解的使用方法,并且可以根據不同的需求來使用不同類型的注解。source注解和class注解的區別在于它們的編譯時和運行時的作用不同。