imai141421356 2012-08-15 07:58:00

[Java] そういうオーバーライドの使い方はやめろ このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

以前客先で出くわしたコードを思い出しながらペタペタ。
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;
	}	
}

コメント(6)

#1 _nabbe 2012-08-15 12:42:13  

そもそも、なにも extends しなくても Object のサブクラスになるだろ

#2 kogaken1 2012-08-15 12:46:36  

25行と27行w

#3 kogaken1 2012-08-15 12:46:43  

25行と27行w

#4 math_neko 2012-08-15 14:53:07  

Object を extends してる段階でもう読む気なくすレベル

#5 KeithYokoma 2012-08-17 16:33:24  

なんかいろいろ間違っている…

#6 tacticsrealize 2013-04-14 11:13:13  

>引数や戻りの型を気にせず

Javaやめてインタプリタやればいいんじゃないかな


このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[Java] 連番

このエントリーをはてなブックマークに追加

もはや人間が読むものではない。

...

package com.renban.erq053.czp008;

/**...

鑑賞する »

[Java] スベテカンスウ

このエントリーをはてなブックマークに追加

何でもやってくれる関数って、便利ですよね...

class Processor
{
	public bool process...

鑑賞する »