java中getClass.class如何使用

這篇文章將為大家詳細講解有關java中getClass.class如何使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設提供從項目策劃、軟件開發(fā),軟件安全維護、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評估等整套的建站服務,主營業(yè)務為網(wǎng)站建設、網(wǎng)站制作,app開發(fā)定制以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。成都創(chuàng)新互聯(lián)公司深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

java反射機制

怎么從一個實例上的獲得類反射

/** * obj 實例的對象 * getClass() 獲得該實例類的反射 * @return  * Class<? extends Object> */obj.getClass();//例子String str1 = "123";Class<?> strClass1 = str1.getClass();String str2 = new String("456");Class<?> strClass2 = str2.getClass();

怎么從一個類上獲得類的反射

/** * ClassName 類名稱 * .class 該類的屬性 * @return * Class<? extends Object> */ClassName.class//例子Class<?> a = String.classClass<?> b = Integer.classClass<?> c = Double.class

package Main;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.util.Arrays;import Demo.Demo1;public class Index {  public static void main(String[] agrs) throws Exception  {    Demo1 obj = new Demo1();    String str = (String)runTargetMethod(obj,"test1",new Class[]{String.class,String.class},new Object[]{"2","3"});    System.out.println(str);    System.out.println();    System.out.println();    System.out.println();    dumpTargetMethod(obj);  }  /**   * 調用指定對象的指定方法。   * @param Object obj 對象實例   * @param String methodName 要調用的方法名稱   * @param Class<?>[] classes 方法中的參數(shù)對象   * @param Object[] valObj 需要向參數(shù)中傳遞的值    * @return Object 直接結果   * */  public static Object runTargetMethod(Object obj,String methodName,Class<?>[] classes,Object[] valObj) throws Exception  {    Class<?> classObj = obj.getClass();    Method method = classObj.getMethod(methodName,classes);    return method.invoke(obj, valObj);  }  /**   * 打印對象內容   * @param Object obj 對象實例   * @throws IllegalAccessException    * @throws IllegalArgumentException    * */  public static void dumpTargetMethod(Object obj) throws IllegalArgumentException, IllegalAccessException  {    Class<?> classObj = obj.getClass();    System.out.println("-------------------method dump-------------------------");    Method[] methods = classObj.getDeclaredMethods();    for(Method method : methods)    {      Class<?>[] parameters = method.getParameterTypes();      StringBuffer strBuffer = new StringBuffer();      for(int i=0;i<parameters.length;i++)      {        if(i < (parameters.length - 1))          strBuffer.append(parameters[i].getName() + ",");        else          strBuffer.append(parameters[i].getName());      }      if(!strBuffer.toString().isEmpty())      {        System.out.println("method info (method modifier : " + Modifier.toString(method.getModifiers()) + "  method return type : " + method.getReturnType().getName() + "  method name : " + method.getName() + " parameters : " + strBuffer.toString() + ")");      }else{        System.out.println("method info (method modifier : " + Modifier.toString(method.getModifiers()) + "  method return type : " + method.getReturnType().getName() + "  method name : " + method.getName() + " parameters : null)");      }    }    System.out.println("-------------------method dump-------------------------");    System.out.println("-------------------------------------------------------");    System.out.println("-------------------fields dump-------------------------");    Field[] fields = classObj.getDeclaredFields();    for(Field field : fields)    {      //能夠訪問該字段      field.setAccessible(true);      System.out.println("field info (modifier : " + Modifier.toString(field.getModifiers()) + "  type : " + field.getType().getName() + " " + " name : " + field.getName() + " defaultValue : " + field.get(obj).toString() + ")");    }  }}

package Demo;/** * Demo 測試類 */public class Demo1 {  public String demo1 = "demo1_val";  protected String demo2 = "demo2_val";  private String demo3 = "demo3_val";  public static String demo4 = "demo4_val";  public String getName()  {    return "my name is 勇哥";  }  public int getAge()  {    return 22;  }  public String test1(String str1,String str2)  {    StringBuffer buffer = new StringBuffer(str1);    buffer.append(str2);    return buffer.toString();  }  public String test1()  {    return "123";  }}

關于java中getClass.class如何使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

名稱欄目:java中getClass.class如何使用
轉載源于:http://bm7419.com/article40/jcedho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、全網(wǎng)營銷推廣虛擬主機、企業(yè)網(wǎng)站制作網(wǎng)站設計、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)