欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java中怎么通過反射查看類的信息

今天就跟大家聊聊有關(guān)Java中怎么通過反射查看類的信息,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、安平網(wǎng)絡(luò)推廣、微信小程序、安平網(wǎng)絡(luò)營銷、安平企業(yè)策劃、安平品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供安平建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.aaarwkj.com

一 點睛

1 通過反射獲取Class對象

使用Class類的forName()靜態(tài)方法。該方法需要傳入字符串參數(shù),該字符串參數(shù)的值是某個類的全限定類名(必須添加完整包名)。

調(diào)用某個類的class屬性來獲取該類對應(yīng)的Class對象。例如Person.class將會返回Person類對應(yīng)的Class對象。

調(diào)用某個對象的getClass()方法,該方法是java.lang.Object類中的一個方法,所以所有Java對象都可以調(diào)用該方法,該方法將會返回該對象所屬類對應(yīng)的Class對象。

2 從Class中獲取信息

獲取構(gòu)造器

訪問Class對應(yīng)的類所包含的方法

訪問Class對應(yīng)的類所包含的屬性(Field)

訪問Class對應(yīng)的類上所包含的注釋。

訪問該Class對象對應(yīng)類包含的內(nèi)部類。

訪問該Class對象對應(yīng)類所在的外部類。

訪問該Class對象所對應(yīng)類所繼承的父類、所實現(xiàn)的接口等。

二 實戰(zhàn)

1 代碼

import java.util.*;import java.lang.reflect.*;import java.lang.annotation.*;// 定義可重復(fù)注解@Repeatable(Annos.class)@interface Anno {}@Retention(value = RetentionPolicy.RUNTIME)@interface Annos {  Anno[] value();}// 使用4個注解修飾該類@SuppressWarnings(value = "unchecked")@Deprecated// 使用重復(fù)注解修飾該類@Anno@Annopublic class ClassTest {  // 為該類定義一個私有的構(gòu)造器  private ClassTest() {  }  // 定義一個有參數(shù)的構(gòu)造器  public ClassTest( String name ) {    System.out.println("執(zhí)行有參數(shù)的構(gòu)造器");  }  // 定義一個無參數(shù)的info方法  public void info() {    System.out.println("執(zhí)行無參數(shù)的info方法");  }  // 定義一個有參數(shù)的info方法  public void info( String str ) {    System.out.println("執(zhí)行有參數(shù)的info方法"        + ",其str參數(shù)值:" + str);  }  // 定義一個測試用的內(nèi)部類  class Inner {  }  public static void main( String[] args )      throws Exception {    // 下面代碼可以獲取ClassTest對應(yīng)的Class    Class<ClassTest> clazz = ClassTest.class;    // 獲取該Class對象所對應(yīng)類的全部構(gòu)造器    Constructor[] ctors = clazz.getDeclaredConstructors();    System.out.println("ClassTest的全部構(gòu)造器如下:");    for (Constructor c : ctors) {      System.out.println(c);    }    // 獲取該Class對象所對應(yīng)類的全部public構(gòu)造器    Constructor[] publicCtors = clazz.getConstructors();    System.out.println("ClassTest的全部public構(gòu)造器如下:");    for (Constructor c : publicCtors) {      System.out.println(c);    }    // 獲取該Class對象所對應(yīng)類的全部public方法    Method[] mtds = clazz.getMethods();    System.out.println("ClassTest的全部public方法如下:");    for (Method md : mtds) {      System.out.println(md);    }    // 獲取該Class對象所對應(yīng)類的指定方法    System.out.println("ClassTest里帶一個字符串參數(shù)的info()方法為:"        + clazz.getMethod("info", String.class));    // 獲取該Class對象所對應(yīng)類的上的全部注解    Annotation[] anns = clazz.getAnnotations();    System.out.println("ClassTest的全部Annotation如下:");    for (Annotation an : anns) {      System.out.println(an);    }    System.out.println("該Class元素上的@SuppressWarnings注解為:"        + Arrays.toString(clazz.getAnnotationsByType(SuppressWarnings.class)));    System.out.println("該Class元素上的@Anno注解為:"        + Arrays.toString(clazz.getAnnotationsByType(Anno.class)));    // 獲取該Class對象所對應(yīng)類的全部內(nèi)部類    Class<?>[] inners = clazz.getDeclaredClasses();    System.out.println("ClassTest的全部內(nèi)部類如下:");    for (Class c : inners) {      System.out.println(c);    }    // 使用Class.forName方法加載ClassTest的Inner內(nèi)部類    Class inClazz = Class.forName("ClassTest$Inner");    // 通過getDeclaringClass()訪問該類所在的外部類    System.out.println("inClazz對應(yīng)類的外部類為:" +        inClazz.getDeclaringClass());    System.out.println("ClassTest的包為:" + clazz.getPackage());    System.out.println("ClassTest的父類為:" + clazz.getSuperclass());  }}

2 運行

ClassTest的全部構(gòu)造器如下:private ClassTest()public ClassTest(java.lang.String)ClassTest的全部public構(gòu)造器如下:public ClassTest(java.lang.String)ClassTest的全部public方法如下:public static void ClassTest.main(java.lang.String[]) throws java.lang.Exceptionpublic void ClassTest.info(java.lang.String)public void ClassTest.info()public final void java.lang.Object.wait() throws java.lang.InterruptedExceptionpublic final void java.lang.Object.wait(long,int) throws java.lang.InterruptedExceptionpublic final native void java.lang.Object.wait(long) throws java.lang.InterruptedExceptionpublic 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()public final native void java.lang.Object.notifyAll()ClassTest里帶一個字符串參數(shù)的info()方法為:public void ClassTest.info(java.lang.String)ClassTest的全部Annotation如下:@java.lang.Deprecated()@Annos(value=[@Anno(), @Anno()])該Class元素上的@SuppressWarnings注解為:[]該Class元素上的@Anno注解為:[@Anno(), @Anno()]ClassTest的全部內(nèi)部類如下:class ClassTest$InnerinClazz對應(yīng)類的外部類為:class ClassTestClassTest的包為:nullClassTest的父類為:class java.lang.Object

看完上述內(nèi)容,你們對Java中怎么通過反射查看類的信息有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁標(biāo)題:Java中怎么通過反射查看類的信息
分享鏈接:http://www.aaarwkj.com/article32/goddpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、面包屑導(dǎo)航、小程序開發(fā)、Google搜索引擎優(yōu)化、全網(wǎng)營銷推廣

廣告

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

成都seo排名網(wǎng)站優(yōu)化
不卡在线视频中文字幕| 日韩黄片一区二区三区| 日本一区二区三区视频| 亚洲国产精品一区一区| 亚洲av成人免费在线| 秋霞日韩欧美一区二区三区| 久久精品亚洲毛片美女极品| 国产夫妻一区二区三区| 91免费看片在线观看| 亚洲精品一区二区三区三州| 尤物在线免费观看视频| 99热视频在线观看免费| 日韩av黄色制服在线网站| 九九热精品只有这里有| 日韩黄色成人免费片子| 99热视频这里只有精品| 中文字幕一区二区精品区| 亚洲国产熟女导航网站视频| 日本加勒比一道本东京热| 久久亚洲春色中文字幕| 免费又色又爽无遮挡网站| 亚洲av在线av天堂| 人妻少妇精品一区毛二区| 91亚色在线免费观看| 成人在线午夜免费视频| 免费日韩黄片在线观看| 午夜福利大片在线观看视频| 特级艳片在线观看免费| 未满十八禁止观看免费观看| 偷窥偷拍原味一区二区三区| 日韩精品视频一区二区在线观看| 国产亚洲综合另类色专区| 亚洲一级特黄大片在线观看| 真人国产一级美女免费视频| 日本一区二区三区三州免费观看| 熟女亚洲一区精品久久| 亚洲精品自拍一二三四区 | 亚洲国产日韩欧美一级| 亚洲视频一区二区精品| 欧美亚洲伊人久久综合| 欧美另类亚洲日本一区二区|