国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JAVA基礎(chǔ):從.class文件中尋找類名

2019-11-18 11:02:04
字體:
供稿:網(wǎng)友

  可以有多種方式判定類的名字:

假定所有的類都以com,org,或者net開頭
搜索classpath來尋找名字為Hack的類
搜索classpath來尋找映射到這個文件的目錄入口
直接查看類自身。對于所有的情況下,這是最直接的
java規(guī)范規(guī)定了如何查看一個class文件。存儲在class文件一開始的一個值就是以Java內(nèi)部分割符“/”為格式的完整的類明。

下面的代碼返回了文件C:/code/hacks/research/com/generationjava/Hack.class的內(nèi)部類名com/generationjava/Hack,讀者可以進(jìn)一步編寫代碼將“/”轉(zhuǎn)換成“.”:

static final public int MAGIC = 0xCAFEBABE;
// 傳遞C:/code/hacks/research/com/generationjava/Hack.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;
}
當(dāng)你直接從.class文件中獲得類的信息的時候,就簡化了開發(fā)。查找一個匿名.class類文件的完整的類名是任何基于.class文件工作的應(yīng)用的重要部件。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 陆良县| 苍山县| 浑源县| 吴旗县| 洛南县| 鹤庆县| 揭阳市| 涞源县| 湖州市| 潼南县| 容城县| 汽车| 游戏| 呼和浩特市| 嘉善县| 南投县| 阿克陶县| 萍乡市| 宁安市| 玉田县| 石阡县| 益阳市| 乌兰察布市| 滦南县| 金湖县| 宝丰县| 边坝县| 乌拉特后旗| 广丰县| 芦溪县| 盘锦市| 辽宁省| 肇州县| 五常市| 富蕴县| 资阳市| 公安县| 广南县| 宁河县| 朝阳市| 临漳县|