syobochimの

女子力を

Classファイルから

BCELつかって

見つけてみた

こんばんは!

## 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ファイル

## みつけた
## これで女子力を見つけるのがはかどりますね!!
ただし、なぜか実行にすごく時間がかかる…。
## ありがとうございました