怎樣過(guò)濾IType中的IMethod
Posted on 2007-07-17 23:51 測(cè)試 閱讀(637) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): Java,Eclipse
eclipse中的IType,它分別有兩個(gè)實(shí)現(xiàn)的基類(lèi),分別是BinaryType和SourceType,顧名思義,分別是處理二進(jìn)制的類(lèi)、源代碼形式的類(lèi)。IType可以理解成為一個(gè)類(lèi)對(duì)象,它封裝了對(duì)類(lèi)的一些處理。
今天的重點(diǎn)不是說(shuō)IType,而是說(shuō)過(guò)濾IMethod,下面是一段對(duì)過(guò)濾IMethod的代碼片斷,明白人應(yīng)該一看就明白了,呵呵,看起來(lái)比較的弱智,不過(guò),沒(méi)有東西寫(xiě)的時(shí)候就寫(xiě)點(diǎn)這樣的,就當(dāng)是加強(qiáng)記憶吧。
它是通過(guò)Flags進(jìn)行判斷的,取得public的Method代碼如下,其余的以此類(lèi)推。
1
public static List<IMethod> getPublicMethods(IType claz) throws JavaModelException
{
2
List<IMethod> list = new ArrayList<IMethod>();
3
IMethod[] methods = claz.getMethods();
4
for(IMethod temp : methods)
{
5
if(Flags.isPublic(temp.getFlags()))
{
6
list.add(temp);
7
}
8
}
9
return list;
10
}



2

3

4



5



6

7

8

9

10

java中的Class也可以得到Method,也可以過(guò)濾得到我們自己想要的Method,取得public的Method代碼如下,其余的以此類(lèi)推。
1
public static List<Method> getPublicMethods(Class claz)
{
2
List<Method> list = new ArrayList<Method>();
3
Method[] methods = claz.getMethods();
4
for(Method temp : methods)
{
5
if(Modifier.isPublic(temp.getModifiers()))
{
6
list.add(temp);
7
}
8
}
9
return list;
10
}



2

3

4



5



6

7

8

9

10

其實(shí)兩段代碼非常相似,好了,今天也就寫(xiě)到這里,睡覺(jué)去了。