以前客先で出くわしたコードを思い出しながらペタペタ。
Object型のままキャストせずに使えるので、引数や戻りの型を気にせずデータやロジックを渡せる画期的なアイデアらしい。
toStringも酷いけど、equalsの中の変数fugaも型(マジでこんなかんじでした)、equalsの中でチェックなしにキャストしまくり、catch節あたりも酷い。
public class MyClass extends Object{
public String toString(){
Thread t = new HogeThread();
t.start();
try { Thread.sleep(5000L); } catch(Exception e){;}
return ((HogeThread) t).getResult();
}
public boolean equals(Object arg) {
HogeData data = (HogeData)arg;
String hoge = null;
HashMap<ArrayList<HashMap<String,HashMap<Object,Object>>>,ArrayList<ArrayList<ArrayList<HashMap<String,Boolean>>>>> fuga = null;
Object hage = null;
try {
DBAccess dba = new DBAccess(data.getDBInfo());
JSPFactory fac = new JSPFactory(dba,data.getJSPInfo());
ServletContext sc = (ServletContext) data.getServletContext();
HttpServletRequest req = (HttpServletRequest) data.getHttpServletRequest();
dba.connect();
//(ここに処理いっぱい1200行くらい。hoge、fuga、hageあたりが書き換わる)
} catch (Throwable t) {
return false;
} finally {
data.returnParams.hageValue = hoge;
data.returnParams.fugaValue = fuga;
data.returnParams.hageValue = hage;
}
return true;
}
}
なんかいろいろ間違っている…
>引数や戻りの型を気にせず
Javaやめてインタプリタやればいいんじゃないかな
そもそも、なにも extends しなくても Object のサブクラスになるだろ