syobochimの
女子力を
Classファイルから
BCELつかって
見つけてみた
こんばんは!
@syobochim
和田みずき
## syobochimの女子力みつからない ![gomi](images/2009-7-13-1.jpg)
## あまりにも見つからないから ## Classファイルから女子力を探すことにしました。
# 自棄です
## syobochimの女子力と仮定するもの ## Syobochimクラス ## jyoshiryokuメソッド ![sagasu](images/syobochim.png)
# しかし
Javaファイルのままだと
メソッドが使われている場所をみても
どのクラスのメソッドかわからない
IDE使えばいけるという元も子もない話はしない!!
# じゃあ # Classファイル # だっ!!!
Hoge.java
↓ $ javac Hoge.java
Hoge.class
## エディタで開くとこうなる ![class](images/GenBonjovi_class.png)
# よめない
ので、Classファイルを読むコマンドを使う
Hoge.class
$ javap -c -p Hoge
![javap](images/javap1_txt.png)
# よめる
## ちなみに、目的のメソッド呼び出しは ## こう出力される ![target](images/jyoshiryoku.png) ## インスタンス生成でも ## static呼び出しでも一緒で安心(๑´ڡ`๑)
## でも、これだと、 ## 毎回コマンド打たなければならない
## ファイルがいっぱいだとめんどくさい ## そもそも出力結果に対して検索するの辛い
このままでは女子力がみつからない
## なので ## Classファイルを ## 静的解析しましょう
## つかったもの # BCEL http://commons.apache.org/proper/commons-bcel/
## javaClassを宣言して ![javaClass](images/javaClass.png)
## 解析していくことで ![hasJyoshiryoku](images/printClass.png)
## javapしたときと同じ情報を取得することができる ![javap](images/log.png)
# なので
こうすれば女子力を見つけられる!!
Java 8 の stream のおかげですごく簡単に書ける!!
実行結果
女子力がないClassファイル
実行結果
女子力があるClassファイル
## みつけた
## これで女子力を見つけるのがはかどりますね!!
ただし、なぜか実行にすごく時間がかかる…。
## ありがとうございました