1. 程式人生 > >非深入探尋Java反射機制

非深入探尋Java反射機制

通過Java的反射(Reflection)機制,即使在編譯時不知道class name和method name等資訊,也可以在執行時獲取class、interface、fields和methods等相關資訊,還可以建立新的例項、呼叫方法以及獲取/設定屬性值。

本文將介紹Java反射機制的基本知識,包括:陣列(arrays), 註解(annotations),泛型(generics)和動態代理(dynamic proxy),以及動態類的載入和過載入(dynamic class loading and reloading)。

本文還將介紹一些特別的技巧,包括:獲取一個類的getter方法,訪問一個類的私有屬性及方法。

本文在JDK 6 的基礎上介紹Java Reflection。

Example

首先來看一段Java反射的例子

import java.lang.reflect.Method;

public class HelloJava {
	public static void main(String[] args) {
		Method[] methods = HelloJava.class.getMethods();
		for (Method m : methods)
			System.out.println(m.getName());
	}
}

結果為

main
wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll

本文將分為以下幾個部分來分別介紹Java的反射機制


相關推薦

深入探尋Java反射機制 (Class)

Classes 通過反射機制我們可以在執行時探尋類的內部結構,並獲取以下資訊 Class NameClass Modifiers (public, protected, synchronized等)Package InfoSuper ClassImplemented In

深入探尋Java反射機制

通過Java的反射(Reflection)機制,即使在編譯時不知道class name和method name等資訊,也可以在執行時獲取class、interface、fields和methods等相關資訊,還可以建立新的例項、呼叫方法以及獲取/設定屬性值。 本文將介

深入理解java反射機制

轉載自:https://blog.csdn.net/u012585964/article/details/52011138一,java的核心機制        java有兩種核心機制:java虛擬機器(JavaVirtual Machine)與垃圾收集機制(Garbage c

深入理解java反射機制中Method類中的invoke()方法

1.先說明Method類中的幾個重要的屬性 1)Method型別的root屬性: 可以理解為每一個 java方法都有唯一的一個Method物件,這個物件就是root,我們可以利用反射建立java方法的眾多的Method類的物件,這些物件指向root,可以理解為root的映象

Java反射機制深入詳解

const 運行時 設計 應用程序 類加載器 分配 import 程序 為什麽 一.概念   反射就是把Java的各種成分映射成相應的Java類。   Class類的構造方法是private,由JVM創建。   反射是java語言的一個特性,它允程序在運行時(註意不是編譯的

Java反射機制深入應用

前言 在上一篇文章中介紹了Java反射的基本概念以及基本應用,不熟悉的朋友可以點這裡 本篇文章將重點介紹反射機制的深入應用 反射除了可以取得一個類的完整結構外,還可以呼叫類中的指定方法或指定屬性,並且可以通過反射完成對陣列的操作。 通

Java反射機制深入研究

Java反射是Java語言的一個很重要的特徵,它使得Java具體了“動態性”。 在Java執行時環境中,對於任意一個類,能否知道這個類有哪些屬性和方法?對於任意一個物件,能否呼叫它的任意一個方法?答案是肯定的。這種動態獲取類的資訊以及動態呼叫物件的方法的功能來自於Java語言的反射(Reflection

基於NACOS和JAVA反射機制動態更新JAVA靜態常量@Value註解

1.前言 專案中都會使用常量類檔案, 這些值如果需要變動需要重新提交程式碼,或者基於@Value註解實現動態重新整理, 如果常量太多也是很麻煩; 那麼 能不能有更加簡便的實現方式呢? 本文講述的方式是, 一個JAVA類對應NACOS中的一個配置檔案,優先使用nacos中的配置,不配置則使用程式中的預設值; 2

java反射機制

else ++ 類型 應該 動態 error param 字母 什麽 最近在做一個項目。 需求是這樣的,前端傳一個參數param表示要從服務器獲取的參數,後端需要把對應的參數從服務器中取出來。 本來覺得沒什麽,應該蠻簡單。結果一看表,嗯,40多個參數,如果用if...els

利用JAVA反射機制實現調用私有方法

parse try ble cat 權限 利用 enabled tde mod 1.fragment是AccessibilityFragment的對象。須要被調用的方法的類。 setAccessible(true)並非將方法的訪問權限改成了public。而是取

Java反射機制詳解一

java 反射 反射機制 工廠模式 1反射機制是什麽反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。在面向對象的世界裏,萬事萬物皆對象.在ja

java 反射機制 觀點

pan sse clipboard star -s cin clip att repl 反射,當時經常聽他們說,自己也看過一些資料,也可能在設計模式中使用過,但是感覺對它沒有一個較深入的了解,這次重新學習了一下,感覺還行吧! 一,先看一下反

候捷談Java反射機制

將在 內省 編程 pub pop 批處理 cdecl 清理 void 2013-06-12 22:51 1690人閱讀 評論(0) 收藏 舉報 分類: JAVA(51) 傳送門:http://blog.csdn.net/njchenyi/article

Java反射機制詳解

ride length 數組大小 conf array arraycopy 動態調用 ray info Java反射機制詳解 |目錄 1反射機制是什麽 2反射機制能做什麽 3反射機制的相關API ·通過一個對象獲得完整的包名和類名 ·實例化Class類對象 ·獲

java 反射機制

選擇 count 語言 用戶 方案 獲取 接口 功能 .cn 一、java反射機制是什麽?   JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為j

Java反射機制demo(五)—獲得並調用一個類中的方法

color 擁有 oca logs over super getmethod equals() bool 這個demo在使用反射機制操作屬性之前,主要原因是因為在.class文件字節碼中,方法排在屬性的前面。 1,獲得一個類中的方法 先看一下方法和運行結果。獲取所有的方

java反射機制學習:初始反射機制

pro sta 加載 初始 完整 tac demo 獲得 sys   本人小白一枚,想和大家一起分享我學習java的筆記和心得。 反射機制: 指的是可以於運行時加載、探知、使用編譯期間完全未知的類。 程序在運行狀態中,可以動態加載一個只有名稱的類,對於任意一個已加載的

javajava反射機制,動態獲取對象的屬性和對應的參數值,並屬性按照字典序排序,Field.setAccessible()方法的說明【可用於微信支付 簽名生成】

modifier 直接 this 字段值 1-1 讓我 toupper ima play 方法1:通過get()方法獲取屬性值 package com.sxd.test.controller; public class FirstCa{ private

java反射機制淺析

成員變量 java語言 運行時 淺析 表示 運行 如何 信息 動態獲取 Java反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為Java語言的反射

java反射機制實現攔截器

tor 攔截 stat 重要 obj static interface 程序 bject 實現一個攔截器必須要實現一下幾個類: 1 目標類接口:目標類要實現的接口。 package com.lanvis.reflect; public interface ITarge