下記の用な問題について
http://d.hatena.ne.jp/Aileron/20100310/1268184123
簡単なのか難しいのか
一般的なのかマニアックなのかについて
意見を聞かせて頂きたいです!!!
よろしくお願いします!!!!
どういう目的のコードなのか(初心者の学習用であるとか,あぶりだしなのか,マニアックな問題を作ろうとしてるところだとか)がよく分からないので,解いてみた感想として。
簡単なのか難しいのか: 難しいんじゃないですかね
一般的なのかマニアックなのか: マニアックなんじゃないですかね。
という印象を受けました。
あと感想というか,抜け道になっちゃうんじゃないかと思ったので一応書いておきますと,問題2と3は,
2)
(new sample.A()).new B();でとりあえずBのインスタンスを作っておいてから,System.out.println("20-test"); と書く。Bはインスタンス化したので条件は満たしている。
3)
main()を書き換えて期待の出力になるようにprintln書きまくることで期待の出力を得る。
という回答が考えられて,私が採点者なら,問題の制限はすべてクリアしているのでOKと判断するのではないかと思いました。2)はmainが空だからやりたい放題ですし,3)には「Bのコンストラクタは修正せず」とはあるけども「main()を書き換えることなく」という制限がついてないので。素直に考えるとA, B, CにAAのvalue()メソッドを実装するんでしょうけど。
もちろん「問題にそういう抜け道があることに気がつくかどうかのテスト」という意味であればOKなのですが。
4)は,アノテーションにおける引数名省略の条件と,アノテーションのvalue()とインスタンスのvalue()メソッドとの区別ができていなければならず(おそらく意図的に混乱するようにしてるのでしょうけども),なおかついまどのインスタンスにいるかをちゃんと頭で把握しておかないと解けない(Dインスタンスのvalue()を呼んだときにAのvalue()が呼ばれて,そこでのgetClass()はD.classであり,DのアノテーションBのvalueはdefault定義によりAになって,AのアノテーションのvalueはCなのでそのインスタンス化したあとのvalueはCクラスのvalue()が呼ばれる...の流れの把握),マニアックかつ難しいと言っていいんじゃないかと思いました。
> --
> このメールは Google グループのグループ「java-ja」の登録者に送られています。
> このグループに投稿するには、jav...@googlegroups.com にメールを送信してください。
> このグループから退会するには、java-ja+u...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/java-ja?hl=ja からこのグループにアクセスしてください。
>
---------------------------------------------------
矢野 勉(やの つとむ)
電子メール: t_y...@me.com
---------------------------------------------------
問題を解いてみました。第2問が解けませんでした…。
問題はかなりマニアックな気がしましたが、こういうパスル的なものが
好きな人は楽しめるんじゃないかなと思います。
Java初学者に向けた問題だとするとチンプンカンプンだろなと思いました。
どれも「知っていればわかるもの」なので、少し突っ込んでJava5
以降の仕様を調べたことがあれば簡単な問題ばかりだろう、という予感は
あります。
が、僕は全然ダメでした。修行が足りないわ。
>1
基盤寄りの人や、トラシューが日常化してる人だと常識かも。ただ、jre
実装依存/バージョン依存があったりしません?調べていません
が。
>2,3
知っていれば一瞬。
が、私は調べないと分かんなかったっす。
>4
多分「やっと力試しらしくなったよね」てなとこ?が、僕は一個づつ追っ
て行く気力が湧かないっす。
以上。
> --
> このメールは Google グループのグループ「java-ja」の
> 登録者に送られています。
> このグループに投稿するには、jav...@googlegroups.com に
> メールを送信してください。
> このグループから退会するには、java-ja
> +unsub...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/java-ja?hl=ja
> からこのグループにアクセスしてください。
>
皆様、返答有りがとう御座います!!!
参考になりました!!
ありがとうございます!!!