?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛樂博娛188下載:從.class文件中尋找類名

?

作者: BUILDER.COM

Wednesday, J和記娛樂博娛188下載anuary 22 2003 11:18 AM

設想這樣一個情形:用戶經由過程GUI或者在敕令行選擇一個clas和記娛樂博娛188下載s文件,然則他(或她)沒有能夠供給完全有效的類名。

例如,對付C:codehackse和記娛樂博娛188下載searchcomgenerationjavaHack.class,精確的類名是com.generationjava.Hack。

可以有多種要領判斷類的名字:

假定所有的類都以com,org,或者net開首

搜索classpath來探求名字為Hack的類

搜索classpath來探求映射到這個文件的目錄進口

直接查看類自身。對付所有的環境下,這是最直接的

Java規范規定了若何查看一個class文件。存儲在class文件一開始的一個值便因此Java內部瓜分符“/”為款式的完備的類明。和記娛樂博娛188下載

下面的代碼返回了文件C:codehacksesearchcomgenerationjavaHack.class的內部類名com/generationjava/Hack,讀者可以進一步編寫代碼將“/”轉換成“.”:

static final public int MAGIC = 0xCAFEBABE;

// 通報C:codehacksesearchcomgenerationjavaHack.class

// 假定存在這樣一個類

public String getFullyQualifiedName(String filename) throws IOException {

String name = null;

try {

DataInputStream in = new

DataInputStream(new FileInputStream(filename));

if(in.readInt() != MAGIC) {

// 不是一個.class文件

thrownew IOException("Not a class file");

}

in.readUnsignedShort();// 次版本號

in.readUnsignedShort();// 主版本號

in.readUnsignedShort();// 長度

in.readByte();// CLASS=7

in.readUnsignedShort();// 輕忽這個地方

in.readByte();// UTF8=1

name =in.readUTF();//類的名字!!!

in.close();

} catch(IOException ioe) {

ioe.printStackTrace();

}

return name;

}

當你直接從.class文件中得到類的信息的時刻,就簡化了開拓。查找一個匿名.class類文件的完備的類名是任何基于.class文件事情的利用的緊張部件和記娛樂博娛188下載。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

浙江体彩20选5开奖号 新福利辽宁35选7开奖号 真人麻将用微信付款下载 乐清期货配资 qq游戏大厅网页版登录 114股票分析 天津福彩快乐10分钟开奖查询 股票涨跌怎么看新手必看 山东11选5一定牛 2019股票配资平台排行榜 快3走势图上海 银行基金配资业务 itf网球 熊猫麻将血战到底下 模拟炒股叩富网 江苏快三微信群 股票融资公司