卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java web java的反射到底是有什么用處?怎么用?

java的反射到底是有什么用處?怎么用?Java反射說的是在運行狀態(tài)中,對于任何一個類,我們都能夠知道這個類有哪些方法和屬性。對于任何一個對象,我們都能夠對它的方法和屬性進行調用。我們把這種動態(tài)獲取對

java的反射到底是有什么用處?怎么用?

Java反射說的是在運行狀態(tài)中,對于任何一個類,我們都能夠知道這個類有哪些方法和屬性。對于任何一個對象,我們都能夠對它的方法和屬性進行調用。我們把這種動態(tài)獲取對象信息和調用對象方法的功能稱之為反射機制。

可以不通過new關鍵字獲取對象并且使用類對象中的成員變量,方法,修飾符等等,在這里舉例獲取類。

第一種:使用Class.forName(String classPath) ClassPath:寫需要反射的類名,一般是以包名.類名。如:Class clazz = Class.forName("com.entity.Example")

第二種:直接使用Class clz = 類名.class

這種情況一般在我們知道有這個類的時候去使用。如:Class clz = Example.class

第三種:Class clz = 對象. getClass()

前提是對象已經(jīng)被實例化出來了 。如:

Example ex = new Example()

Class clz = ex.getClass()

這三種方法都有各自的優(yōu)點,一般我們使用第一種比較多,按照自己的實際需求去使用才是最好的。反射有啥用?有啥應用場景?

1.spring框架的ioc是基于java的反射機制。

2.JDBC 的數(shù)據(jù)庫的連接注冊驅動,獲取連接也是基于Java反射。

3.Hibernate,Mybatis都有運用到反射。


Java中的反射,一般什么時候會用到?

做基礎框架的時候會用得上,一般應用層面很少,不過這種東西,基本現(xiàn)在很多開源框架都已經(jīng)給你封裝好了,自己基本用不著寫。典型的除了樓上講的Hibernate之外,其實Spring也用到了。經(jīng)典的就是xml或者properties里面寫上了配置,然后在Java類里面解析xml或properties里面的內容,得到一個字符串,然后用反射,根據(jù)這個字符串獲得某個類的實例,這樣就可以動態(tài)配置一些東西,不用每一次都要在代碼里面去new或者做其他的事情,以后要改的話直接改配置文件,代碼維護起來就很方便了,同時有時候要適應某些需求,Java類里面不一定能直接調用另外的方法,這時候也可以通過反射機制來實現(xiàn)。總的來說,自己寫的很少,具體什么時候要用那要看需求,樓上說得對,無非就是根據(jù)一個String來得到你要的實體對象,然后調用它原來的東西。但是如果是要自己寫框架的話,那就會用得比較多了。