ClassUtil

功能列表

  • 獲取指定 classloader 中已加載的類;
  • 獲取指定 classloader 中已加載且?guī)в兄付ㄗ⒔獾念悾?/li>

源代碼

package com.dotions.classloader;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
import java.util.stream.Collectors;

/**
 * <p>
 * Class 相關(guān)工具類
 * </p>
 * 
 * Created by wyf0931 on 2018-03-27.
 */
public class ClassUtil {

    /**
     * 獲取指定 classloader 中已加載的類
     * 
     * @param cl
     */
    @SuppressWarnings("unchecked")
    public static Vector<Class<?>> getLoadedClasses(ClassLoader cl) {
        if (cl == null) {
            return null;
        }
        try {
            Field classes = ClassLoader.class.getDeclaredField("classes");
            classes.setAccessible(true);
            return (Vector<Class<?>>) classes.get(cl);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 獲取指定 classloader 中已加載且?guī)в兄付ㄗ⒔獾念?     * 
     * @param cl
     * @param annotationClass
     */
    public static List<Class<?>> getLoadedClassesByAnnotation(ClassLoader cl,
        Class<? extends Annotation> annotationClass) {
        Vector<Class<?>> classes = getLoadedClasses(cl);
        if (classes == null || classes.isEmpty()) {
            return Collections.emptyList();
        }
        return classes.stream().filter(c -> c.isAnnotationPresent(annotationClass)).collect(Collectors.toList());
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市良狈,隨后出現(xiàn)的幾起案子轮纫,更是在濱河造成了極大的恐慌捞蚂,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕴坪,死亡現(xiàn)場離奇詭異还栓,居然都是意外死亡歌殃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門蝙云,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人路召,你說我怎么就攤上這事勃刨。” “怎么了股淡?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵身隐,是天一觀的道長。 經(jīng)常有香客問我唯灵,道長贾铝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任埠帕,我火速辦了婚禮垢揩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘敛瓷。我一直安慰自己叁巨,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布呐籽。 她就那樣靜靜地躺著锋勺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狡蝶。 梳的紋絲不亂的頭發(fā)上庶橱,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音贪惹,去河邊找鬼苏章。 笑死,一個胖子當著我的面吹牛馍乙,可吹牛的內(nèi)容都是我干的布近。 我是一名探鬼主播垫释,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撑瞧!你這毒婦竟也來了棵譬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤预伺,失蹤者是張志新(化名)和其女友劉穎订咸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酬诀,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡脏嚷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞒御。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片父叙。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肴裙,靈堂內(nèi)的尸體忽然破棺而出趾唱,到底是詐尸還是另有隱情,我是刑警寧澤蜻懦,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布甜癞,位于F島的核電站,受9級特大地震影響宛乃,放射性物質(zhì)發(fā)生泄漏悠咱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一征炼、第九天 我趴在偏房一處隱蔽的房頂上張望析既。 院中可真熱鬧,春花似錦柒室、人聲如沸渡贾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽空骚。三九已至,卻和暖如春擂仍,著一層夾襖步出監(jiān)牢的瞬間囤屹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工逢渔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肋坚,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像智厌,于是被迫代替她去往敵國和親诲泌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 媽:寶寶铣鹏,我們討論下敷扫,我們快要吵架的時候,找一個地方冷靜下诚卸,像菲菲生氣了爬老櫸樹一樣葵第,你幫媽媽想個地方 寶:好的,...
    貝墨閱讀 445評論 0 0
  • “#本文參加‘青春’大賽合溺,本人保證本文為本人原創(chuàng)卒密,如有問題則與主辦方無關(guān),自愿放棄評優(yōu)評獎資格” 作者:張浩鑫 學...
    南楚白衣閱讀 2,697評論 51 225
  • 圖·文/深水幽藍_ 當陽光照在書桌上,我一人獨享靜謐午后的悠然時光睛约,伴隨著窗外偶爾傳來的清脆鳥叫屏镊,筆尖在紙上流動...
    瑞安_閱讀 1,079評論 2 8
  • 世上火光永不熄滅,愿你像火一樣燃燒痰腮。
    藍是另一種藍閱讀 298評論 0 0
  • 冷暴力分手第一階段: 他突然很忙, 他突然很忙律罢,當你還沉浸在熱戀的喜悅中的時候膀值。 你的反應(yīng)就是:我要乖一點/或者他...
    半島一束閱讀 790評論 1 1