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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java.lang.reflect.Constructor

發布時間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.lang.reflect.Constructor 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?https://www.cnblogs.com/xinhuaxuan/p/6019524.html

java.lang.reflect.Constructor

一、Constructor類是什么
  Constructor是一個類,位于java.lang.reflect包下。
  在Java反射中 Constructor類描述的是 類的構造方法信息,通俗來講 有一個類如下:

1 package com.testReflect; 2 public class ConstructorDemo { 3 private int num; 4 private String str; 5 6 public ConstructorDemo(){ 7 num = 2; 8 str = "xixi"; 9 } 10 11 public ConstructorDemo(int num,String str){ 12 this.num = num; 13 this.str = str; 14 } 15 16 @Override 17 public String toString() { 18 return "ConstructorDemo [num=" + num + ", str=" + str + "]"; 19 } 20 }

  在Java反射中ConstructorDemo類中的構造方法ConstructorDemo()、ConstructorDemo(int num,String str)都是Constructor類的實例,這個Constructor類的實例描述了構造方法的全部信息。(包括:方法修飾符、方法名稱、參數列表 等等)

二、如何獲取Constructor類對象
  一共有4種方法,全部都在Class類中:
    - getConstructors():獲取類中的公共方法
    - getConstructor(Class[] params): 獲取類的特定構造方法,params參數指定構造方法的參數類型
    - getDeclaredConstructors(): 獲取類中所有的構造方法(public、protected、default、private)
    - getDeclaredConstructor(Class[] params): 獲取類的特定構造方法,params參數指定構造方法的參數類型

三、Constructor類中常用的方法
  對于構造方法,我們就是用來創建類的實例的,但是在Java反射中需要注意的是:默認構造函數和帶參數的構造方法創建實例的區別。

1 package com.testReflect; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.reflect.Modifier; 5 6 public class ConstructorTest { 7 public static void main(String[] args) throws Exception { 8 //使用反射第一步:獲取操作類ConstructorDemo所對應的Class對象 9 Class<?> cls = Class.forName("com.testReflect.ConstructorDemo"); 10 11 //獲取默認的構造函數 12 Constructor constructor1 = cls.getConstructor(new Class[]{}); 13 //獲取構造函數信息 14 System.out.println("修飾符: "+Modifier.toString(constructor1.getModifiers())); 15 System.out.println("構造函數名: "+constructor1.getName()); 16 System.out.println("參數列表: "+constructor1.getParameterTypes()); 17 //通過默認的構造函數創建ConstructorDemo類的實例 18 Object obj = constructor1.newInstance(); 19 System.out.println("調用默認構造函數生成實例:"+obj.toString()); 20 21 System.out.println("==============================================="); 22 23 //獲取帶參數的構造函數 24 Constructor constructor2 = cls.getConstructor(new Class[]{int.class,String.class}); 25 System.out.println("修飾符: "+Modifier.toString(constructor2.getModifiers())); 26 System.out.println("構造函數名: "+constructor2.getName()); 27 System.out.println("參數列表: "+constructor2.getParameterTypes()); 28 //獲取構造函數信息 29 //通過帶參數的構造函數創建ConstructorDemo類的實例 30 Object obj2 = constructor2.newInstance(new Object[]{33,"haha"}); 31 System.out.println("調用帶參數構造函數生成實例:"+obj2.toString()); 32 } 33 }

?

總結

以上是生活随笔為你收集整理的java.lang.reflect.Constructor的全部內容,希望文章能夠幫你解決所遇到的問題。

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