日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 反射和映射

發布時間:2023/12/31 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 反射和映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 反射和映射

什么是反射?等同于映射嗎?

完全不相關的。反射是一個機機制,映射是一種關系。 反射機制是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。

映射是一種對應關系,在很多的情況下,表示一種存在的聯系而已。

反射能做什么

  • 在運行時判斷任意一個對象所屬的類;
  • 在運行時構造任意一個類的對象;
  • 在運行時判斷任意一個類所具有的成員變量和方法;
  • 在運行時調用任意一個對象的方法;
  • 生成動態代理。

通俗的講,當某些API沒有暴露出來,但是我們又需要用到其中的某些方法屬性就需要了。

ForExample:

//假如JavaBean沒有暴露出構造方法package mypackage;public class JavaBean {private int age;private String name;public String adress;public int getAge() {return age;}private void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAdress() { 22 return adress;}public void setAdress(String adress) {this.adress = adress;}}//我們可以通過Class類來獲取實例對象package mypackage;import java.lang.reflect.Method;public class JNITest {public static native void getStringFromC();public static void main(String[] args) {try {//獲取類Class<?> class1 = Class.forName("mypackage.JavaBean");//獲取所有的公共的方法Method[] methods = class1.getMethods() ;for (Method method : methods) {System.out.println( method );}//獲取實例類Object object = class1.newInstance();JavaBean javaBean = (JavaBean)object;javaBean.setName("Hellow");System.out.println("--->"+javaBean.getName());} catch (Exception e) {e.printStackTrace();} } }

運行結果: public java.lang.String mypackage.JavaBean.getName() public void mypackage.JavaBean.setName(java.lang.String) public java.lang.String mypackage.JavaBean.getAdress() public void mypackage.JavaBean.TestMethod() public int mypackage.JavaBean.getAge() public void mypackage.JavaBean.setAdress(java.lang.String) public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() public final native void java.lang.Object.notify()

總結

以上是生活随笔為你收集整理的Java 反射和映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。