国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java反射機制深入詳解

這篇具有很好參考價值的文章主要介紹了Java反射機制深入詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一.概念

反射就是把Java的各種成分映射成相應的Java類。

Class類的構造方法是private,由JVM創(chuàng)建。

反射是java語言的一個特性,它允程序在運行時(注意不是編譯的時候)來進行自我檢查并且對內部的成員進行操作。例如它允許一個java的類獲取他所有的成員變量和方法并且顯示出來。Java 的這一能力在實際應用中也許用得不是很多,但是在其它的程序設計語言中根本就不存在這一特性。例如,Pascal、C 或者 C++ 中就沒有辦法在程序中獲得函數(shù)定義相關的信息。 (來自Sun)

JavaBean 是 reflection 的實際應用之一,它能讓一些工具可視化的操作軟件組件。這些工具通過 reflection 動態(tài)的載入并取得 Java 組件(類) 的屬性。

反射是從1.2就有的,后面的三大框架都會用到反射機制,涉及到類"Class",無法直接new CLass(),其對象是內存里的一份字節(jié)碼.

Class 類的實例表示正在運行的 Java 應用程序中的類和接口。枚舉是一種類,注釋是一種接口。每個數(shù)組屬于被映射為 Class 對象的一個類,所有具有相同元素類型和維數(shù)的數(shù)組都共享該 Class 對象。基本的 Java類型(boolean、byte、char、short、int、long、float 和 double)和關鍵字 void 也表示為 Class 對象。Class 沒有公共構造方法。Class 對象是在加載類時由 Java 虛擬機以及通過調用類加載器中的 defineClass 方法自動構造的。

1 Person p1 = new Person();
2 //下面的這三種方式都可以得到字節(jié)碼
3 CLass c1 = Date.class();
4 p1.getClass();
5 //若存在則加載,否則新建,往往使用第三種,類的名字在寫源程序時不需要知道,到運行時再傳遞過來
6 Class.forName(“java.lang.String”);
復制代碼
  CLass.forName()字節(jié)碼已經(jīng)加載到java虛擬機中,去得到字節(jié)碼;java虛擬機中還沒有生成字節(jié)碼 用類加載器進行加載,加載的字節(jié)碼緩沖到虛擬機中。

1 import java.lang.reflect.*;
2
3 public class DumpMethods {
4 public static void main(String args[]) {
5 try {
6 Class c = Class.forName(“java.util.Stack”);
7
8 Method m[] = c.getDeclaredMethods();
9
10 for (int i = 0; i < m.length; i++)
11 System.out.println(m[i].toString());
12 }
13 catch (Throwable e){
14 System.err.println(e);
15 }
16 }
17 }

1 public synchronized java.lang.Object java.util.Stack.pop()
2 public java.lang.Object java.util.Stack.push(java.lang.Object)
3 public boolean java.util.Stack.empty()
4 public synchronized java.lang.Object java.util.Stack.peek()
5 public synchronized int java.util.Stack.search(java.lang.Object)
  這樣就列出了java.util.Stack 類的各方法名以及它們的限制符和返回類型。這個程序使用 Class.forName 載入指定的類,然后調用 getDeclaredMethods 來獲取這個類中定義了的方法列表。java.lang.reflect.Methods 是用來描述某個類中單個方法的一個類。

以下示例使用 Class 對象來顯示對象的類名:

1 void printClassName(Object obj) {
2 System.out.println("The class of " + obj +
3 " is " + obj.getClass().getName());
4 }
  還可以使用一個類字面值(文章來源地址http://www.zghlxwxcb.cn/news/detail-460668.html

到了這里,關于Java反射機制深入詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Java筆記040-反射/反射機制、Class類

    Java筆記040-反射/反射機制、Class類

    目錄 反射(reflection) 一個需求引出反射 反射機制 Java反射機制原理圖 Java反射機制可以完成 反射相關的主要類 反射機制的優(yōu)點和缺點 反射調用優(yōu)化-關閉訪問檢查 Class類 基本介紹 代碼解釋部分 類加載方法 應用實例:Class02.java 獲取Class類對象 代碼解釋部分 哪些類型有Class對象

    2024年02月09日
    瀏覽(20)
  • Java反射、代理機制

    官方解釋:反射允許對封裝類的字段、方法和構造方法的信息進行編程訪問。 虛擬機加載類文件后,會在方法區(qū)生成一個類對象,包含了類的結構信息,如字段、方法、構造方法等。反射是一種能夠在程序運行時動態(tài)訪問、修改類對象中任意屬性的機制(包括private屬性)。

    2024年02月10日
    瀏覽(17)
  • Java的反射機制

    Java 的反射機制允許在程序運行期間,借助反射 API 獲取類的內部信息,并能直接操作對象的內部屬性及方法。 Java 反射機制提供的功能: 在運行時,使用反射分析類的能力,獲取有關類的一切信息(類所在的包、類實現(xiàn)的接口、標注的注解、類的數(shù)據(jù)域、類的構造器、類的

    2024年02月02日
    瀏覽(22)
  • Java的反射機制(2)

    目錄 Class類基本介紹 Class類的常用方法 如何獲取class類對象 哪些類型有Class對象 Class類基本介紹 在Java語言中,每個對象都有一個運行時類,即其所屬的類。而這個運行時類在Java中是以Class類的實例形式存在的,該Class類實例就是所謂的Class對象。Class類表示一個類或接口的元

    2024年02月08日
    瀏覽(20)
  • Java反射機制是什么?

    Java反射機制是什么?

    Java 反射機制 是 Java 語言的一個重要特性。 在學習 Java 反射機制前,大家應該先了解兩個概念,編譯期和運行期。 編譯期 是指把源碼交給編譯器編譯成計算機可以執(zhí)行的文件的過程。在 Java 中也就是把 Java 代碼編成 class 文件的過程。編譯期只是做了一些翻譯功能,并沒有把

    2024年02月12日
    瀏覽(11)
  • 【JavaSE】Java的反射機制

    1.java反射機制 1.1簡介 被視為動態(tài)語言的關鍵,允許程序在執(zhí)行期間,借助于RefectionAPI取得任何類的內部信息。在程序的運行狀態(tài)中,可以構造任意一個類的對象,可以了解任意一個類對象所屬的類,可以了解任意一個類的成員變量和方法,可以調用任意一個對象的屬性和方

    2024年04月26日
    瀏覽(19)
  • Java學習路線(23)——反射機制

    一、概述 (一)什么是反射: 反射指的是任何一個Class類,在“運行時”都可以直接得到全部成分。 (二)動態(tài)可獲取的對象: 構造器對象——Constructor,成員變量對象——Field,成員方法對象——Method。 (三)反射關鍵: 第一步都是得到編譯后的Class對象,然后可以獲得

    2024年02月08日
    瀏覽(15)
  • Java重點:反射機制的使用

    Java重點:反射機制的使用

    目錄 一、概念 二、類類 1、類類的獲取方式 1)類名.Class 2)對象.getClass() 3)Class.forName() 三、反射實例化 1、調用一個公有的無參構造方法 2、調用一個公有的一個參構造方法 3、調用一個公有的兩個參構造方法 4、調用一個私有的一個參構造方法 四、反射:方法調用 1、公有

    2024年02月07日
    瀏覽(20)
  • Java安全基礎之Java反射機制和ClassLoader類加載機制

    Java安全基礎之Java反射機制和ClassLoader類加載機制

    目錄 Java 反射機制 反射 java.lang.Runtime ClassLoader 類加載機制 URLClassLoader loadClass() 與 Class.forName() 的區(qū)別? Java 反射(Reflection)是 Java 非常重要的動態(tài)特性。在運行狀態(tài)中,通過 Java 的反射機制,我們能夠判斷一個對象所屬的類。了解任意一個類的所有屬性和方法。能夠調用任

    2024年04月22日
    瀏覽(41)
  • 敲黑板!java反射機制和原理

    獲取Class對象:首先,你需要獲取表示要操作的類的 Class 對象??梢允褂靡韵氯N方式之一來獲取 Class 對象: Class.forName() 方法:使用類的全限定名獲取 Class 對象,例如: Class? clazz = Class.forName(\\\"com.example.MyClass\\\"); .class 語法:如果你已經(jīng)有了類的實例,可以使用 .class 語法來獲

    2024年02月08日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包