反射有哪些常見的API呢?

来源:https://www.cnblogs.com/java265/archive/2022/07/05/16425205.html
-Advertisement-
Play Games

運算符 運算符用於連接值。Java提供了一組豐富的算術和邏輯運算符以及數學函數。 算術運算符 在Java中,使用算術運算符+、-、*、/表示加、減、乘、除運算。當參與/運算的兩個操作數都是整數時,表示整數除法;否則,表示浮點除法。整數的求餘操作用%表示。例如,15/2=7,15%2=1,15.0/2 ...


轉自:

http://www.java265.com/JavaCourse/202206/3838.html

下文筆者講述反射常用API的簡介說明,如下所示:

獲取構造函數

Connstructor getConstructor(Class<?>... parameterTypes):
    返回此Class對象對應類的指定public構造器
Constructor<?>[] getConstructors():
    返回此Class對象對應類的所有public構造器。
Constructor getDeclaredConstructor(Class<?>... parameterTypes):
    返回此Class對象對應類的指定構造器,與構造器的訪問許可權無關
Constructor<?>[] getDeclaredConstructors():
    返回此Class對象對應類的所有構造器,與構造器的訪問許可權無關

獲取方法

Method getDeclaredMethod(String name, Class<?>... parameterTypes):
    返回此Class對象對應類的指定方法,與方法的訪問許可權無關
Method[] getDeclaredMethods():
     返回此Class對象對應類的全部方法,與方法的訪問許可權無關

獲取屬性

Field getField(String name):
    返回此Class對象對應類的指定public Field
Field[] getFields():
    返回此Class對象對應類的所有public Field
Field getDeclaredField(String name):
     返回此Class對象對應類的指定Field,與Field的訪問許可權無關
Field[] getDeclaredFields():
     返回此Class對象對應類的全部Field,與Field的訪問許可權無關

獲取Class對應類上所包含的註解

A getAnnotation(Class annotationClass):
    試圖獲取該Class對象對應類上指定類型的Annotation
	   如果該類型的註釋不存在,則返回null
Annotation[] getAnnotations():
     返回該Class對象對應類上的所有Annotation 
Annotation[] getDeclaredAnnotations():
     返回直接修飾該Class對應類的所有Annotation

獲取Class對象對應類包含的內部類

Class<?>[] getDeclaredClasses():
    返回該Class對象對應類里包含的全部內部類

獲取Class對象對應類所在的外部類

Class<?> getDeclaringClass():
     返回該Class對象對應類所在的外部類

獲取Class對象對應類所繼承的父類、所實現的介面等

Class<?>[] getInterfaces():
    返回該Class對象對應類所實現的全部介面

獲取Class對象對應類所繼承的父類

Class<? super T> getSuperclass():
   返回該Class對象對應類的超類的Class對象

獲取Class對象對應類的修飾符、所在包、類名等基本信息

int getModifiers():
     返回此類或介面的所有修飾符
    修飾符由public、protected、private、final、static、abstract等對應的常量組成
	 返回的整數應使用Modifier工具類的方法來解碼,才可以獲取真實的修飾符。
Package getPackage():
      獲取此類的包
String getName():
      以字元串形式返回此Class對象所表示的類的名稱
String getSimpleName():
      以字元串形式返回此Class對象所表示的類的簡稱

判斷該類是否為介面、枚舉、註釋類型等

boolean isAnnotation():
    返回此Class對象是否表示一個註釋類型(由@interface定義)
boolean isAnnotationPresent(Class<? extends Annotation> annotationClass):
    判斷此Class對象是否使用了Annotation註釋修飾
boolean isAnonymousClass():
    返回此Class對象是否是一個匿名類
boolean isArray():
    返回此Class對象是否表示一個數組類
boolean isEnum():
     返回此Class對象是否表示一個枚舉(由enum關鍵字定義)
boolean isInterface():
     返回此Class對象是否表示一個介面(使用interface定義)
boolean isInstance(Object obj):
     判斷obj是否是此Class對象的實例,該方法可以完全代替instanceof操作符

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 搭建免費的代理ip池 需要解決的問題: 使用什麼方式存儲ip 文件存儲 缺點: 打開文件修改文件操作較麻煩 mysql 缺點: 查詢速度較慢 mongodb 缺點: 查詢速度較慢. 沒有查重功能 redis --> 使用redis存儲最為合適 所以 -> 數據結構採用redis中的zset有序集合 ...
  • 順序結構 java的基本結構有順序結構、選擇結構、迴圈結構。我們先來學習順序結構 java的基本結構就是順序結構,也就是java按照順序一步一步執行,除非有特殊說明。 順序結構也是最簡單的演算法結構 語句與語句之間,框與框之間是按從上到下的順序進行的,它是由若幹個一次執行的處理步驟組成的,它是任何一個 ...
  • 本系列Netty源碼解析文章基於 4.1.56.Final版本,公眾號:bin的技術小屋 前文回顧 在前邊的系列文章中,我們從內核如何收髮網絡數據開始以一個C10K的問題作為主線詳細從內核角度闡述了網路IO模型的演變,最終在此基礎上引出了Netty的網路IO模型如下圖所示: 詳細內容可回看《從內核角 ...
  • 基礎學的太枯燥了,當然需要用案例來實踐一下,才能更好的鞏固所學。 所以本次來個對手機號進行加密,檢驗我們所學~ 知識點: 文件讀寫 基礎語法 字元串處理 正則表達式 代碼部分 # 導入系統包 import platform import re print("Hello,秀兒") print("簡單的 ...
  • Hi,大家好,我是Mic 一個工作了3年的粉絲,在面試的時候遇到一個線程相關問題。 想讓我幫他解答一下。 問題是,“什麼是守護線程,它有什麼特點” 下麵看看高手的回答。 高手: 好的。 守護線程,它是一種專門為用戶線程提供服務的線程,它的生命周期依賴於用戶線程。 只有JVM中仍然還存在用戶線程正在運 ...
  • 1.Scanner對象 ​ 在學習java流程式控制制之前,我們首先學一下Scanner對象,通過Scanner類來獲取用戶的輸入,java.util.Scanner是java5之後出現的! 基本語法 Scanner scanner=new Scanner(System.in); 我們可以再程式中按住c ...
  • 一、下載jdk 官網下載地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 需要登錄Oracle賬號 百度網盤下載地址: 鏈接:https://pan.baidu.com/s/1kV0yY2eYz ...
  • SpringMvc相較於Servlet開發簡單了很多只需要常用的註解,我們需要記住的是它用了那些方式去傳輸數據和驗證數據,方便以後對java框架的審計,mvc有很多內容是和Servlet重覆的我只需要大概的複習一遍,解下來還有最後一點mvc的只是就是攔截器。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...