激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java中Class類的作用與深入理解

Java中Class類的作用與深入理解

2021-01-20 13:56沖雪 Java教程

這篇文章主要介紹了Java中Class類的作用與深入理解的相關(guān)資料,希望通過本文能幫助到大家讓大家理解這部分內(nèi)容,需要的朋友可以參考下

JavaClass類的作用與深入理解

  在程序運(yùn)行期間,Java運(yùn)行時(shí)系統(tǒng)始終為所有的對(duì)象維護(hù)一個(gè)被稱為運(yùn)行時(shí)的類型標(biāo)識(shí)。這個(gè)信息跟蹤著每個(gè)對(duì)象所屬的類。JVM利用運(yùn)行時(shí)信息選擇相應(yīng)的方法執(zhí)行。而保存這些信息的類稱為Class??赡苋菀桩a(chǎn)生混淆,容易想到class。不過二者沒什么關(guān)系,class不過是描述類的一個(gè)關(guān)鍵字。而Class卻是保存著運(yùn)行時(shí)信息的類。

       它能做什么?Class類可以幫助我們?cè)诔绦蜻\(yùn)行時(shí)分析類,說白了就是獲取類中的值。可能瞬間就想到了反射,沒錯(cuò)!Class一般就是和反射配套使用的,因?yàn)槲覀兿駽lass提供一個(gè)類或一個(gè)類的類名,Class就可以提供我們很多信息,比如屬性/方法/修飾符/構(gòu)造器/類名等等。然后我們就可以進(jìn)一步進(jìn)行反射。不過,還是先來簡(jiǎn)單了解下Class類的內(nèi)容和使用方式吧!

        我們通常用以下方法來獲取Class對(duì)象:

?
1
2
String str = new String();
Class cl = str.getClass();

        因?yàn)檫@個(gè)類包含太多信息,所以我們可以通過它來獲得具體一個(gè)類的域/方法和構(gòu)造器。下面列舉一些常用的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public static void main(String[] args) throws Exception {
// 以String.class為例
String str = new String();
Class cl = str.getClass();
/**
 * 獲取包名+類名<br>
 * java.lang.String
 */
cl.getName();
/**
 * 只獲取類名 - String
 */
cl.getSimpleName();
/**
 * 獲取數(shù)組的Class對(duì)象<br>
 * 因?yàn)樗械腏ava類都繼承自O(shè)bject,數(shù)組也一樣.所以數(shù)組本身也是個(gè)Class, 得到數(shù)組的Class自然也可以轉(zhuǎn)回?cái)?shù)組.
 */
cl.getComponentType();
/**
 * 返回構(gòu)造器數(shù)組,包括超類的公有成員.
 */
cl.getConstructors();
/**
 * 返回方法數(shù)組,包括超類的公有成員.
 */
cl.getMethods();
/**
 * 返回域數(shù)組,包括超類的公有成員.
 */
cl.getFields();
/**
 * 返回全部構(gòu)造器數(shù)組,無論是public/private還是protected,不包括超類的成員.
 */
cl.getDeclaredConstructors();
/**
 * 返回全部域數(shù)組,無論是public/private還是protected,不包括超類的成員.
 */
cl.getDeclaredFields();
/**
 * 返回全部方法數(shù)組,無論是public/private還是protected,不包括超類的成員.
 */
cl.getDeclaredMethods();
/**
 * 獲取類前的修飾符
 */
cl.getModifiers();
}

        我們可以通過一個(gè)類來獲取Class對(duì)象,進(jìn)而獲取此類的信息。也可以通過全類名來獲取Class對(duì)象。

?
1
Class cl = Class.forName("java.lang.String");

        有了這個(gè)類的Class對(duì)象,我們就可以創(chuàng)建這個(gè)類的對(duì)象。最方便/快速的方法是調(diào)用newInstance()。默認(rèn)情況下,它默認(rèn)調(diào)用無參構(gòu)造來返回一個(gè)對(duì)象。

?
1
String str = (String)(Class.forName("java.lang.String").newInstance());

        以下是用Constructor通過獲取構(gòu)造器來創(chuàng)建對(duì)象:

?
1
2
3
4
5
6
7
8
9
10
// 調(diào)用無參的私有構(gòu)造函數(shù)
 Constructor c1 = Class.forName("java.lang.String")
  .getDeclaredConstructor();
 c1.setAccessible(true);
 String str1 = (String) c1.newInstance();
 // 調(diào)用有參的私有構(gòu)造函數(shù)
 Constructor c2 = Class.forName("java.lang.String")
  .getDeclaredConstructor(new Class[] { String.class });
 c2.setAccessible(true);
 String str2 = (String) c2.newInstance("hello");

        Class不是太難,因?yàn)樗褪莻€(gè)信息類。在運(yùn)行時(shí)跟蹤類,掌握類的全部信息。

如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/chongxue91/article/details/60961086

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: av大全在线免费观看 | 性欧美大战久久久久久久免费观看 | 一区二区三区日韩在线观看 | 91精品久久香蕉国产线看观看 | 姑娘第四集免费看视频 | 色欲香天天天综合网站 | 99re热视频这里只精品 | 欧美激情天堂 | 思思久而久而蕉人 | 国产成年人在线观看 | 一级成人毛片 | 日韩在线视频免费观看 | 国产黄色毛片 | 国产成人强伦免费视频网站 | 国产流白浆高潮在线观看 | 蜜桃一本色道久久综合亚洲精品冫 | 国产九九热 | 精品成人网 | 草逼一区 | 中文字幕电影免费播放 | 49vv看片免费 | 97视频一二区 | 曰韩一级片 | 视频一区二区三区视频 | 欧美韩国日本在线 | 日本在线播放一区二区三区 | 欧美综合在线观看视频 | 亚洲综合无码一区二区 | 欧美日韩亚洲精品一区二区三区 | 国产精品久久久久久久四虎电影 | 91精品动漫在线观看 | 欧美a∨一区二区三区久久黄 | 欧美成人区 | 黄色影院在线观看视频 | 黄色羞羞视频在线观看 | 欧美成年人视频在线观看 | 成人午夜在线免费 | 免费看操片 | 成人在线观看一区二区三区 | 亚洲一区在线视频观看 | 狠狠久久伊人中文字幕 |