08/02/24 16:50:42
クロージャでもBGGAの場合は、RAIIっぽい事ができるってメリットあるけど、
プロパティは基本的にタイプ数が減るだけ。
201:デフォルトの名無しさん
08/02/24 16:52:58
>>199
汚れる程度の問題もあるんだよ。
プロパティ導入は下手するとソース互換性破壊するし。
202:デフォルトの名無しさん
08/02/24 16:53:53
コンポーネント志向にはプロパティが必要。
203:デフォルトの名無しさん
08/02/24 16:55:26
beansのプロパティで我慢
204:デフォルトの名無しさん
08/02/24 17:07:46
>>201
バイナリ互換性じゃなくてソース互換性?
「下手すると」って書いてるけど、どの案でどういう問題が?
205:デフォルトの名無しさん
08/02/24 18:03:08
>>204
あるクラスにプロパティ hoge と、フィールド hoge があった時に、
識別子 hoge で、フィールドとプロパティどっちアクセスすんの?って話。
プロパティ hoge の宣言と、フィールド hoge の宣言を排他にすりゃ問題ないけど
beans のプロパティ hoge と、フィールド hoge は共存できてたわけで、
安易に排他にするとソース互換性を破壊する。
アクセスレベルのルールをちゃんと考えれば互換性たもてるかもしれんが、
失敗すればフィールドアクセスのつもりがプロパティアクセスになったりしてソース互換性破壊する。
頑張ってアクセス時のルールで互換性維持したとしても
プロパティ hoge を継承クラスのフィールド hoge で隠蔽できるようになったりする。
206:デフォルトの名無しさん
08/02/24 18:26:02
排他にすりゃいいし、フィールドで隠蔽できないようにすりゃいい。
というか、draft3はそういう案じゃなかったか?
で、それが「安易に排他にする」ことだとして、そこで発生する問題は何?
207:デフォルトの名無しさん
08/02/24 18:30:18
>>206
標準APIでプロパティ使うと、継承クラスで同名フィールドが宣言できなくなる。
beans のプロパティと同名のフィールドを宣言してるソースは大量にあるわけで。
っつーか、draft3 ってどれの事いってるん?
208:デフォルトの名無しさん
08/02/24 19:00:33
これね。
URLリンク(docs.google.com)
>標準APIでプロパティ使うと、継承クラスで同名フィールドが宣言できなくなる。
そこであらかじめ定義されたプロパティと同名のフィールドをサブクラスで
定義しなきゃならないケースというのが想像できないんだけど?
もしそれが問題になるんなら、親クラスで定義されるのがプロパティじゃなくて
フィールドでも一緒じゃね?
>beans のプロパティと同名のフィールドを宣言してるソースは大量にあるわけで。
beansと関係ないからこそソース互換性を保てるわけなんだが。
209:デフォルトの名無しさん
08/02/24 19:48:02
>>208
自前のクラスで、標準APIのクラス Hoge を継承する SubHoge に、
フィールド hoge が宣言されてるとする。
これは既存のソースでプロパティ導入前にはなんの問題もないけど、
プロパティが導入されて、標準APIのクラス Hoge にプロパティ hoge が後付で導入され、
おまけにプロパティとフィールドが排他だとなると、ソース互換性が破壊されるわけ。
フィールドは隠蔽されるだけだし、最初から存在するルールだからソース互換性は破壊されない。
210:デフォルトの名無しさん
08/02/24 19:59:01
標準API :
class Hoge{ abstract Hoge getHoge(); }
ユーザ側:
class SubHoge extends Hoge{
Hoge hoge;
Hoge getHoge(){ return hoge; }
}
で上手くいってたのに、
プロパティ導入して、標準APIが
class Hoge {
abstract Hoge getHoge();
abstract property Hoge hoge;
}
とかに変わると、SubHoge はコンパイル通らなくなるわな。
211:デフォルトの名無しさん
08/02/24 20:04:42
後付けでプロパティ追加なんてしなきゃいいじゃん。
これができないとどういう場合に困るの?
212:デフォルトの名無しさん
08/02/24 20:12:09
>>208
あと、beansとの互換性を維持する場合の問題は別にあって、
同名のプロパティが言語仕様上は共存できるとかね。
例えば
interface Hoge {
boolean isHoge(); void setHoge(boolean b);
Hoge getHoge(); void setHoge(Hoge hoge);
}
は、言語仕様上は問題ない。
だけどプロパティとしては同名プロパティが複数あるので曖昧になる。
beans仕様は厳密じゃないから、どっちを優先的にプロパティにするかとか、
実は同名プロパティを複数持ったbeansは不正なのか、みたいな事を記述してない。
java.beans.Introspector が決める事になってるみたいだけど、
これもブラックボックスで振る舞いは文書化されてない。
で、beansと互換性のあるプロパティを言語仕様に導入しようとしたとき
Hoge hoge;
System.out.println(hoge.hoge);
とかなったとき、getHoge() を呼ぶべきか isHoge() を呼ぶべきか?
はたまた同名プロパティは宣言できないようにすべきか? みたいな問題が出てくる。
まぁ、こーゆーのが現実に問題になるケースは少ないと思うけど
言語仕様上はきっちり決めとかないといけないから。
213:デフォルトの名無しさん
08/02/24 20:33:45
みんなきちんとIntrospectorを使っているんならまだましだけど、
勝手にやっちゃってるフレームワークが氾濫しているのも問題だよな。
214:デフォルトの名無しさん
08/02/24 20:41:35
今時プロパティのない言語は時代遅れ。
215:デフォルトの名無しさん
08/02/24 20:44:49
get/setをエディタが補う時代にプロパティとかいらんだろ
でもプロパティってバインド機能があるんだっけか
216:デフォルトの名無しさん
08/02/24 20:48:48
追加はしてくれるけど、消したり隠したりしてくれないんだよな。
217:デフォルトの名無しさん
08/02/24 21:27:05
正直クロージャすらない言語は時代遅れ
218:デフォルトの名無しさん
08/02/24 22:29:55
func.invoke(20)をfunc(20)にするのだけど、確かに見た目と意味が一致していい気がするけど、
int y=new {int a=>a+1}.invoke(20); は分かるが、
int y=new {int a=>a+1}(20); これはどうかと思わないか?
プロパティとかクロージャも含めて、言語仕様にリテラルを入れるのは
直接的には省略した記法でしかない。
やっぱり、それを新規に導入するだけのメリットがあるかどうかだろ。
ジェネリクス同様、所詮はCのマクロの置き換えと同じだしw
219:デフォルトの名無しさん
08/02/24 22:34:53
そんな使い方しないってw
あほかよ
220:デフォルトの名無しさん
08/02/24 22:44:47
int x = (Integer)new Function("text/javascript", "1+1").invole();
やっぱりこれで良いんですけど。
221:デフォルトの名無しさん
08/02/24 22:45:52
タプルと演算子オーバーロードは、確か、絶対にサポートしないってどこか書いてあった(英語)。
bigdecimalのオペレータ[+,*とか]・オーバーロード・サポートもあんまり期待できない。
byte b; Float o;
{b, o}=init(something);
クラスを定義するほどでもなく、ちょっと利用のつもりでこんな感じだろうけど、
Object[] init(something){return new Object[]{new Byte(2), new Float(2.1)};}
この長い書き方で実質的に展開されるんだろうし、別にリテラルとしてサポートするメリットな意味ない。
クロージャ(GUIイベントを主とした)と違って、あんまり必要としてる人はいないみたい。
配列じゃなくてクラスを返し他方が、他の人が読んでも分かるみたいで、private
で使うんじゃないか?オレなら、publicやprotectedのメソッドでは、こういうAPIがあると作った人を疑っちゃうけどね。
222:デフォルトの名無しさん
08/02/24 22:49:53
演算子オーバーロードのサポートも時間の問題と思われ
223:デフォルトの名無しさん
08/02/24 22:53:26
それと、クラスをメモリ上に一旦読み込んでしまえば、
匿名クラスとかクロージャとかで関数一つでもクラスをいちいち生成される
とか気にしても、性能に全く関係ないよ。
.classでもメモリ上ではCのように速さとか性能はほぼネイティブと同じになるし、
せいぜいメソッドで動的呼び出しか、静的呼び出しかの違いぐらいじゃないか?
それに、C、jvmくらべるより、それよりもIO待ちのほうがはるかに遅くなるw
クラスファイルが多くなるだろうけど、jarで固めるだけだし。
javaとかjvmとかは、C++C#Rubyみたいにプログラマーよりじゃなくて
実はハードよりの言語(と仕様)だったりする。
確かゴスリン(BGGA)もやる気みたいだったし、あとはjdk1.7に間に合うかどうかだろう。
クロージャは1.7の目玉だしな。
224:デフォルトの名無しさん
08/02/24 22:56:34
>>220
それ、何をしたいのかやりたいことは分かるが、そもそもJavaと関係ないだろw
225:デフォルトの名無しさん
08/02/24 23:06:29
>>217
匿名クラスがjavaのクロージャなんだけど、
そのクロージャってなんだよw
226:デフォルトの名無しさん
08/02/24 23:09:26
java.util.concurrent
GUI使わない案件なら、やっぱりJavaはこれでしょ。
クロージャのほうが先に導入されてるとそれなりに面白かったけど。
227:デフォルトの名無しさん
08/02/24 23:14:33
>>225
匿名クラスがクロージャそのものなのはC#なんでは?
228:デフォルトの名無しさん
08/02/24 23:15:46
>>220
それだけダラダラとタイプ量があるなら匿名クラスと同じ。
ていうか、匿名クラスならまだjavaだけど、それjsだろ。
いつも書いてて絶対に必要になるし、ダラダラ書くの面倒じゃん?ってのが始まりだろう。
229:デフォルトの名無しさん
08/02/24 23:17:51
>>218
俺には「C言語はアセンブリのマクロにすぎないから不要」ってぐらい暴論に聞こえるんだが。
クロージャにしたって、一塊の処理の手続きを「ひとつのオブジェクトでもある」のと「データとは異なるものとしてコンパイラに特別扱いしてもらう」のうち後者以外はすべて異端って扱いはどうなのよ。
230:デフォルトの名無しさん
08/02/24 23:24:33
>>227
C#のクロージャの話をしたいのか。
231:デフォルトの名無しさん
08/02/24 23:26:33
>>229
なかなかの暴論だなw
オレには「アセンブリは、所詮はCのベンダー実装に過ぎない」って思ってたけどw
232:デフォルトの名無しさん
08/02/24 23:27:24
withLock(lock, {=>
System.out.println("hello");
});
withLock(lock) {
System.out.println("hello");
}
あたりは本当にいろいろと可能性が広がりそうで楽しみ。
Collectionも引数にクロージャ渡すものがかなり拡張されるだろうね。
233:デフォルトの名無しさん
08/02/24 23:28:04
>>230
C#スレでやれよ。
234:デフォルトの名無しさん
08/02/24 23:30:08
>>229
何を実現したいのかと、それをどうやるのかの実装とは、別にして考えてみたらどうだ?
それなら全て異端ってことじゃなく、両立可能だろうな。
235:デフォルトの名無しさん
08/02/24 23:38:09
>>232
Collectionには手を出さないんじゃないか?
ジネリクスと混じってしまってパッと見なんだか分からなくなる。
ジネリクスは目が慣れるまで少し時間がかかったしw
コンカレント辺りのブロッキングキュー・クラスとかでやるならまだしも。
236:デフォルトの名無しさん
08/02/24 23:40:35
俺はGenericsは単純すぎて拍子抜けした。
C++使いからみれば単純この上ない。
237:デフォルトの名無しさん
08/02/24 23:54:25
C++が意味不明なんだよ。
それもジェネリクスじゃなくて、C++はテンプレートだろ。
C++のやりたいことは雛形プログラム手法で、Java総称型なんだけど、その様子だと分かってないな。
238:デフォルトの名無しさん
08/02/24 23:59:23
>>220
それ、クロージャじゃなくてevalじゃん。
239:デフォルトの名無しさん
08/02/25 00:02:44
ちなみにおまいらクロージャ候補はどの候補がいいと思うよ?
240:デフォルトの名無しさん
08/02/25 00:10:35
>>238
クロージャーであることが目的になっちゃってるの?
241:デフォルトの名無しさん
08/02/25 00:13:49
>>240
evalだと静的に色々解析できないじゃん
242:デフォルトの名無しさん
08/02/25 00:20:02
内部イテレータが欲しい俺は少数派か?
243:デフォルトの名無しさん
08/02/25 00:23:33
↑具体的にどういうコードになるの?
244:デフォルトの名無しさん
08/02/25 00:24:35
>>240
少なくともevalを多用するのは嫌い。
evalは(たとえ動的言語であっても)最後の武器だと思ってる。
245:デフォルトの名無しさん
08/02/25 00:25:11
2ch は保守派 (というか優位に立ちたい人) しかいないからわざわざ披露しない方が良いよ。
246:デフォルトの名無しさん
08/02/25 00:30:15
html出身の人にはクロージャの意味は分からんのです。
247:デフォルトの名無しさん
08/02/25 00:39:00
>>237
C++の方が機能が多いってだけだろ。
C++だってgenericだぜ。
248:デフォルトの名無しさん
08/02/25 00:39:47
>>245
馬鹿は頭固いから何言ってもダメだしな。
なぜこんなスレに来ているのかわからんが。
249:デフォルトの名無しさん
08/02/25 01:02:42
JavaのGenericsを批判している人も批判していない人も、型引数への制約やワイルドカード型引数といった
JavaのGenericsの機能を本当に使いこなせている?
Google作成のGuiceあたりはGenericsを多用しているので、勉強になる。
これらのソースをすらすら理解でき改造できるようになってから、批判しよう。
250:デフォルトの名無しさん
08/02/25 01:08:50
あの程度理解できない人間はこのスレに来るべきじゃないよ
251:デフォルトの名無しさん
08/02/25 01:21:01
clone() じゃねーけど、減らす仕様もロードマップに示して欲しいなー。
@Deprecated じゃないけど 「旧仕様互換ソースはコンパイルできるが新仕様準拠ソースは
コンパイルエラー/ただしランタイムは解決可能」 みたいなアノテーションでも作って。
252:デフォルトの名無しさん
08/02/25 01:37:26
それはコンパイルオプションで解決すりゃいいことでは
253:デフォルトの名無しさん
08/02/25 04:54:50
使う方のソースはそれで良いけど宣言する方のソースはアノテーション必要でしょ。
254:デフォルトの名無しさん
08/02/25 05:55:52
やっぱりC++出身者は、個人的な問題を指摘する事が多いね。
255:デフォルトの名無しさん
08/02/25 09:14:43
cloneって何か変わるの??
256:デフォルトの名無しさん
08/02/25 14:10:28
>>245
だれだおまえ?
257:デフォルトの名無しさん
08/02/25 21:27:34
私の名はクリストファー・エリクソン。
258:デフォルトの名無しさん
08/02/25 21:28:14
よう!くりちゃん!!久しぶり!!
259:デフォルトの名無しさん
08/02/25 22:15:22
>>250
ずいぶんと自信過剰ですな。
ところでJVMの実装とかあなたはできるんですか?
260:デフォルトの名無しさん
08/02/25 23:09:49
>>222
おまえはだれだ?
261:デフォルトの名無しさん
08/02/26 00:19:24
ボクハ、オンガクカ、デンタクカタテニ
262:デフォルトの名無しさん
08/02/26 00:28:42
もうjava2Kでいいじゃん
263:デフォルトの名無しさん
08/02/26 00:46:08
>>259
GenericsとJVM実装って全然別やん…
264:デフォルトの名無しさん
08/02/26 00:55:26
なんか、味噌でも糞でもとにかく延々と追加して行かなければいけないような雰囲気だねー。
マッチポンプで仕事作ってるようも見える。
265:デフォルトの名無しさん
08/02/26 02:46:25
C#がね。
266:デフォルトの名無しさん
08/02/26 02:51:58
clone()ってなくなるの?
267:デフォルトの名無しさん
08/02/26 07:47:39
珍妙なもんを削る方向にも進めということでしょ。
268:デフォルトの名無しさん
08/02/26 09:27:53
チンチンを削ちゃうの?
269:デフォルトの名無しさん
08/02/26 09:27:55
>>266
今更削除できないと思うが。
270:デフォルトの名無しさん
08/02/26 09:47:04
clone削除されたら困るんだが
271:デフォルトの名無しさん
08/02/26 10:05:15
されないw
272:デフォルトの名無しさん
08/02/26 11:57:23
やっぱり小さいチンチンは削除です
273:デフォルトの名無しさん
08/02/26 14:30:54
>>245
全く何を言いたいのか意味不明なんだが、もっと分かりやすく書き直してくれないか?
274:デフォルトの名無しさん
08/02/26 20:17:29
>>268
尖らすの?
275:デフォルトの名無しさん
08/02/26 23:06:10
ちぎり取るんだろ
276:デフォルトの名無しさん
08/02/27 00:32:49
結局プロパティってなくなったの?
boundのダウンキャスト地獄な仕様みた瞬間うんざりしたからいらんけど。
277:デフォルトの名無しさん
08/02/27 00:44:36
getter/setterでいいよな別に。
アクセッサの表記にget/setがなくなる程度のメリットしかない気がする。
278:デフォルトの名無しさん
08/02/27 00:53:16
ワンモアセッ!
279:デフォルトの名無しさん
08/02/27 01:34:49
>>277
例えばどうやるの?
280:デフォルトの名無しさん
08/02/27 01:40:24
Property Spec (draft 3)の次ってあるの?
ぐぐってもv4とかなさげなんだけど
281:デフォルトの名無しさん
08/02/27 01:50:35
Seasarのpublicフィールドみたいなことを
勝手にやられるより、あったほうが良いんじゃないか?
282:デフォルトの名無しさん
08/02/27 01:58:51
どうなんの?
何かアノテーションとコンパイラのサポートで十分な気がするけどこれも言語仕様変える気?
283:デフォルトの名無しさん
08/02/27 03:34:44
プロパティなんてメソッド経由のアクセスで十分だろ。なに必死になってんのw
284:デフォルトの名無しさん
08/02/27 04:06:28
clone()がどうとうかこうとかも、意味不明なことをいう変質者が多いな。
285:デフォルトの名無しさん
08/02/27 05:19:15
ああ。なんだか何いってんのかわかんない奴が最近多いよ。
やっぱ春だな
286:デフォルトの名無しさん
08/02/27 10:43:09
プロパティはもう入らないんじゃないかな。
クロージャは入るだろうけど。
>>232のような制御構造に近い記述のメリットが大きいから。
並列とか制御に関するクラスの記述に便利だしね。
287:デフォルトの名無しさん
08/02/27 10:46:12
やっぱ、break, returnだろ。
てか、偶然に速レスになってるし。
288:デフォルトの名無しさん
08/02/27 14:56:53
プロパティとかクロージャとかどうでもいいから
XMLリテラルとソースファイルのエンコード指定と
RAW文字列?みたいな今不便なところを改善する機能をはやく取り入れてほしい
289:デフォルトの名無しさん
08/02/27 16:20:49
XMLリテラルはXjが最有力と言われた時期もあったけど、
もう入らないと思う。最近続報が全くないので。当時の賛否を考えると、
here documentであることよりもXMLであることがネックになってると思われ
290:デフォルトの名無しさん
08/02/27 16:54:45
ヒアドキュメントより文字列リテラルに変数変数埋め込めるようにして欲しい。
+結合だと冗長になる。
291:デフォルトの名無しさん
08/02/27 21:17:53
そういう機能作ると半分の人間が動的に作成した文字列に値が入らないか心配しはじめるだろう。
292:デフォルトの名無しさん
08/02/27 21:21:11
変数変数って何よ?
293:デフォルトの名無しさん
08/02/28 00:16:52
XMLリテラルとか変数変数とか向こうで要望出したらどうだ?(当然英語だけどw)
294:デフォルトの名無しさん
08/02/28 06:07:06
ようはEL式風のヒアドキュメントがあればHappyってこったな
295:デフォルトの名無しさん
08/02/28 22:47:11
null代入を禁止する型が欲しい。
契約プログラミングまでいかなくていいので、
派生型としてnull代入を禁止する型がほしい。
296:デフォルトの名無しさん
08/02/28 22:55:28
>>295
FindBugs の @NonNull で我慢
297:デフォルトの名無しさん
08/02/28 22:59:00
>>296
できれば代入操作時にnullが指定されたら動的に例外投げてくれるような仕組みがあるとうれしいんだけどね。
FindBugsのそれはしらなかったよ。使ってみる。
298:デフォルトの名無しさん
08/02/29 04:57:36
このnullについては、ライブラリや言語(仕様)やjvmで解決できる問題じゃないと思うんだが、単んに愚痴をこぼしてるだけ?
299:デフォルトの名無しさん
08/02/29 05:08:38
JVM まで持ち出すなら何でもできるじゃん。
300:デフォルトの名無しさん
08/02/29 05:21:03
正直イラン
301:デフォルトの名無しさん
08/02/29 07:48:05
そしてJavaは「C++Jあヴぁ」となりました。
302:デフォルトの名無しさん
08/02/29 22:48:25
>>298
既存のライブラリを呼ぶときキャストの嵐になるのを覚悟すれば、
null代入可能なものと不可能なものを型システムで区別すること自体は簡単。
Cでいうと、普通のポインタはNULLポインタ型と非NULLポインタ型のunionだと思えばいい。
303:デフォルトの名無しさん
08/02/29 22:58:23
バグ検知のための利便性向上目的でしょ。アスペクソ指向 & アサーション方面からの
アプローチでする話じゃないのかな。String s not null と思いつきで書いてみると、いずれ
テーブルのカラム宣言のようなカオスになりそうだが。
304:デフォルトの名無しさん
08/03/01 00:45:54
俺の欲しいのとしてはこんな感じ:
String! s; s = null; // 文法エラー
String t = null; s = t; // 実行時エラー
public void hoge(final String! s){
s.~~(); // 絶対にNullPointerExceptionがおこらない
}
class Hoge<T!>{ }
List<Object!> o = anotherList; // 要素がnullでもとおっちゃうなあ…
305:デフォルトの名無しさん
08/03/01 00:54:30
こんな保守的なところでアイディアを披露しても時間の無駄だよ。
JCP のケツ追いしかできない連中が集まってるところだから。
306:デフォルトの名無しさん
08/03/01 01:24:46
アノテーションで十分だろ
307:デフォルトの名無しさん
08/03/01 01:45:19
>>305
JCPになりようもない愚論を大声で喚いている奴より、
JCP追うだけの奴の方がずっとましで有益です。
308:デフォルトの名無しさん
08/03/01 01:48:34
自覚はあるようですね。
309:デフォルトの名無しさん
08/03/01 02:51:28
英語読むのも書くのも面倒くさいんじゃ
310:デフォルトの名無しさん
08/03/01 04:37:53
nullについてはtry catchでナルポ補足いいんだろ。
また俺様仕様のC++の癖が出でるねw
311:デフォルトの名無しさん
08/03/01 04:52:33
「こんな保守的」ってのは
どうしてこういう発想になるんだろう?
312:デフォルトの名無しさん
08/03/01 09:54:18
>>304
String! s; //<この時点でエラーじゃねーのか?
あと、nullを代入する時点で実行時エラーにするのは、パフォーマンス的にムリ。
setX(X x) { if (x == null) throw NullPointerException("X is not nullable"); this.x = x; }
とかしとけ。
313:デフォルトの名無しさん
08/03/01 10:30:55
operator overloadがあれば可能だけど、
nullを代入してはいけないのに、してしまうなんてださいコードだね。
314:デフォルトの名無しさん
08/03/01 10:32:55
大抵こういう流れになります。
315:デフォルトの名無しさん
08/03/01 11:00:36
>>313
Javaみたいな静的型言語だと、operator overload を使って null 代入チェックしようとすると
クラス単位で null代入可能か不可能かを決めなくちゃいけなくなって逆に不便なような気もするが。
316:デフォルトの名無しさん
08/03/01 11:31:55
でもやっぱりnonnull欲しいよなあ。言語仕様的に。何だっけ?ぷりえんぷてぃぶとか言うんだっけ?
Curlとか触ってると、ホントこれはいいアイデアだと思える。
317:デフォルトの名無しさん
08/03/01 11:34:22
null代入で実行時エラー?
そんな糞仕様は勘弁してくれ
318:デフォルトの名無しさん
08/03/01 11:41:45
>>317
なんでも静的にやろうとするとリフレクション経由で弄った時に簡単に破綻するような。
319:デフォルトの名無しさん
08/03/01 11:51:51
>>316
つ JSR-305
320:デフォルトの名無しさん
08/03/01 12:06:26
要するに @NonNull > JSR-305
321:デフォルトの名無しさん
08/03/01 12:07:40
@CheckForNullってのもある
322:デフォルトの名無しさん
08/03/01 12:11:04
@NetHome
323:デフォルトの名無しさん
08/03/01 12:33:39
そういうのはそもそも設計上の問題じゃないのか?
324:デフォルトの名無しさん
08/03/01 12:41:26
debug用annotationだし。> 305
言語にいれろって言っている奴は馬鹿だし。>>304
325:デフォルトの名無しさん
08/03/01 12:50:12
NullPointerExceptionとassertを使い分ければいいだけだからいらんな
326:デフォルトの名無しさん
08/03/01 13:02:14
AspectJかJavassist使えばいいんじゃね?
327:デフォルトの名無しさん
08/03/01 14:03:41
多分、奴の頭の中では「C++じゃヴぁ」を考えてるんだろうw
328:デフォルトの名無しさん
08/03/01 14:10:19
>>307
よう、この流れのどこが有益なんだ?
329:デフォルトの名無しさん
08/03/01 14:21:08
粘着キターw
330:デフォルトの名無しさん
08/03/01 14:30:45
自意識過剰すぎ
331:デフォルトの名無しさん
08/03/01 14:36:25
思いつきをここに書き込むことでJavaをよりよくしてくださって本当にありがとうございました
332:デフォルトの名無しさん
08/03/01 20:42:27
こういう連中がいることでオタクが嫌われるんだろうなあ
333:デフォルトの名無しさん
08/03/02 03:30:15
いい加減、みんなの夢を詰め込んだJava3を作ってくれないかな?
そしてぶちぎれた誰かが、FreeJavaとかNetJavaとか作ればいいと思うお。(*´∀`)
334:デフォルトの名無しさん
08/03/02 03:36:30
SunがJavaと呼称するのは禁止させるだろ。
335:デフォルトの名無しさん
08/03/02 03:37:45
そんなことしなくても既に JCP が輪姦中じゃん。
336:デフォルトの名無しさん
08/03/02 06:43:25
>>333
Java OSとかOpenJavaがないのはネタ?
337:デフォルトの名無しさん
08/03/02 06:44:57
というか、Javaというのは言語とライブラリ群であって、
実体はjvm用のバイトコードを生成するコンパイラなんだけど。
だから好きなだけJRubyとかJC++とかJC99とかのコンパイラ作れよw
(多分君らのようなMSーC++厨じゃ無理だろうけどww)
338:デフォルトの名無しさん
08/03/02 10:37:54
実体とかアホじゃないの?
339:デフォルトの名無しさん
08/03/02 10:42:33
アホだな。
JVMやバイトコードの仕様拡張を含むJCPの議論を知らない知ったか厨だろ。
340:デフォルトの名無しさん
08/03/02 11:17:14
>バイトコードの仕様拡張を含む...
ずっと昔から議論されてるみたいだけど、どの程度すすんでるの?
341:デフォルトの名無しさん
08/03/02 11:23:42
>>338-339
また湧いてきたw
もう春かww
342:デフォルトの名無しさん
08/03/02 11:43:23
wを多用するとバカっぽいのは分かった。
343:デフォルトの名無しさん
08/03/02 11:52:59
今頃そんな事分かったのか…
344:デフォルトの名無しさん
08/03/02 12:10:31
アノテーションのためにクラス・ファイルが拡張されたのを勘違いしてるんだろ
345:デフォルトの名無しさん
08/03/02 12:15:59
ハァ?おまえが勘違いしてね?
346:デフォルトの名無しさん
08/03/02 14:33:29
javaはプラットフォーム一式なんだが
347:デフォルトの名無しさん
08/03/02 15:52:59
JavaScript, JRubyとかはどうなるんだ?
348:デフォルトの名無しさん
08/03/02 15:53:55
厨房がこのスレに潜伏中の模様!注意せよ!!
349:デフォルトの名無しさん
08/03/02 16:26:35
社員じゃなくてバイトがコード書いてるの?
350:デフォルトの名無しさん
08/03/02 16:49:33
マイクロソフトの下請けとかそうんかんじらしいよw
351:デフォルトの名無しさん
08/03/02 18:53:33
>アノテーションのためにクラス・ファイルが拡張されたのを勘違いしてるんだろ
はぁ?アホじゃねぇの?
アノテーションはバイトコード内の属性用のブロックに格納されますが?
352:デフォルトの名無しさん
08/03/02 19:12:06
何で「あなた」ごときがそれを知ってるんですか?
353:デフォルトの名無しさん
08/03/02 19:22:11
厳密にいうとバイトコード内ではなくてクラスファイル内というべきだが
クラスファイルの仕様は公開されてるんだから調べればわかる
URLリンク(java.sun.com)
354:デフォルトの名無しさん
08/03/02 20:09:57
アホテーションはどこに格納されてますか?
355:デフォルトの名無しさん
08/03/02 21:08:32
お前の頭の中にあるんじゃねーのか?
356:デフォルトの名無しさん
08/03/02 21:59:15
>>353
何で「あなた」ごときがそれを知ってるんですか?
357:デフォルトの名無しさん
08/03/02 22:00:49
>>351はアホだね。
358:デフォルトの名無しさん
08/03/02 22:41:20
おいおい、ほかの言語にももっと目を向けろよ。
Not Nullにする構文がどんだけ有益なことかわからんのか。
359:デフォルトの名無しさん
08/03/02 22:43:26
>>358
せまい世界の問題に何を必死になってんだか
360:デフォルトの名無しさん
08/03/02 23:13:24
じゃあJavaは今のままで問題ないとでも?
361:デフォルトの名無しさん
08/03/02 23:14:41
>>325
362:デフォルトの名無しさん
08/03/02 23:50:07
ぬるぽ
363:デフォルトの名無しさん
08/03/03 04:32:20
そんな考えだから衰退していくんだ
364:デフォルトの名無しさん
08/03/03 04:42:11
だからこんなところで発案するだけ無駄だと言ったろう。
お上から落ちてきた仕様書の解釈論程度の能力しかない下請け連中が集まってるだけなんだから。
365:デフォルトの名無しさん
08/03/03 06:41:33
>>363
というかおまえはJavaa使うな。
おまえはJavaaで何が作れて、Javaaに何期待してるんだ?
吠えてるだけで何も作れない奴はこのあたりで黙っちゃうだがなwwwん?
366:デフォルトの名無しさん
08/03/03 07:29:46
それが良いアイデアだと妄信してる時点で終わってるでしょ
見た目をちょっと変えるだけで何の革新でもないし、
コーディングスタイルの歪な文化をひとつ増やすだけでも迷惑。
367:デフォルトの名無しさん
08/03/03 07:37:40
それはアノテーションのことかクロージャーのことか、どれの事言ってんだ?
368:デフォルトの名無しさん
08/03/03 08:14:48
Java学習暦2ヶ月の厨房が吠えてるんでしょうw春だしw
369:デフォルトの名無しさん
08/03/03 09:01:12
------------- ここまでテンプレ -------------
370:デフォルトの名無しさん
08/03/03 09:28:05
----------- ここからプロローグ -----------
371:デフォルトの名無しさん
08/03/03 21:16:39
>>366
そうではない。
進化をとめた言語は、死んだも同然。
C++を見てみろ。
372:デフォルトの名無しさん
08/03/03 21:18:17
C++は革新だらけの言語だが…
むしろ革新多すぎw
373:デフォルトの名無しさん
08/03/03 21:24:41
C++0x はどうせ VC++ で実装されないと踏んでるのですね。
ありえそうで怖い。
374:デフォルトの名無しさん
08/03/03 21:29:16
C99はいつになったら
375:デフォルトの名無しさん
08/03/03 21:34:49
C++だって糞みたいな提案は拒否されてる。>>366に同意。
376:デフォルトの名無しさん
08/03/03 21:41:01
お前らごときが何エラそうに評価してんだw
377:デフォルトの名無しさん
08/03/03 21:43:52
お前ごときが口出しするな
378:デフォルトの名無しさん
08/03/03 21:48:45
プッ
2ch で吠えるなよ~ キャンキャンw
379:デフォルトの名無しさん
08/03/03 22:05:32
じゃこのスレいらないね
380:デフォルトの名無しさん
08/03/03 22:06:21
>>374
GCC拡張で良いんじゃね?
381:デフォルトの名無しさん
08/03/03 22:08:53
VCで実装うんちゃらとかいってる時点で厨房だろwwwwここJava擦れだしww
花見気分で様子見してろよwwww分かるからwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
382:デフォルトの名無しさん
08/03/03 22:15:39
厨房注意報出てるんだから、スルーしろよ
といってもこのスレの住人レベルじゃ無理だろうけどw
383:デフォルトの名無しさん
08/03/03 23:17:29
NonNullとかでガチガチにしても結局たいして意味ないんだよな
384:デフォルトの名無しさん
08/03/04 00:44:12
ヌルポが回避できたって、テキトーな初期値が入れられるだけなんだったら意味無いからな。
それなら、ヌルポ出して、その変数に入れるべき値を考察させればいい。
385:デフォルトの名無しさん
08/03/04 02:36:17
ラムダがint hoge => hoge という形になると
Javaは生涯C#に追いつけないことが確定するからな
386:デフォルトの名無しさん
08/03/04 07:24:02
>>380
いつになったらVLAを関数に渡せるようになるの
387:デフォルトの名無しさん
08/03/04 08:10:47
未だにJavaとMS(VC++VBC#)を比べてるガキがいる件について語ろうではないか
388:デフォルトの名無しさん
08/03/04 11:23:39
Javaは一生懸命C#に追いつこうと機能追加しとるじゃない
389:デフォルトの名無しさん
08/03/04 11:28:39
ちなみにプロパティも属性もボクシングもC#は1.0からもってる
クロージャは2.0で持ってる
今は3.0ね
390:デフォルトの名無しさん
08/03/04 11:44:16
ニートはこんなすれに粘着してないで早く面接行けよw
391:デフォルトの名無しさん
08/03/04 18:40:02
C#のプロジェクトって早くもデスマってるのが多いよ
392:デフォルトの名無しさん
08/03/04 18:45:28
C#は始めから迷走してるからな。何がやりたいのか分からん
393:デフォルトの名無しさん
08/03/04 18:53:44
>>391
このスレ関係ないし、まったく興味ないから知らないな。
例えばどれ?
394:デフォルトの名無しさん
08/03/04 19:04:03
>>393
関係ないといいつつ話を継続させようとするな
395:デフォルトの名無しさん
08/03/04 19:14:50
じゃ、はよ消えてくんろ
396:デフォルトの名無しさん
08/03/04 19:34:36
>>393
馬鹿かおまいはw
397:デフォルトの名無しさん
08/03/04 19:45:52
今IT業界ではJavaこそが諸悪の根源とされてるのを知らんのか
398:デフォルトの名無しさん
08/03/04 19:53:58
いやおまいらみたいな無能労働層だろjk
399:デフォルトの名無しさん
08/03/04 19:56:38
>>392
C#は1.0の時から3.0の機能は全部予定してたから今のところ何の破綻もない
一直線だ
むしろ迷走してるのはJavaだな
言語仕様を民主的に決める必要なんてかけらも無いのに
400:デフォルトの名無しさん
08/03/04 20:02:23
Javaは方向性も、ビジョンもないからな。
ほんと、これからどうして行きたいのかがわからん
401:デフォルトの名無しさん
08/03/04 21:58:06
このC#厨房は何をしにきたたたたたたたたんだ?
402:デフォルトの名無しさん
08/03/04 22:01:41
自慢しに来た
403:デフォルトの名無しさん
08/03/04 22:06:36
まあ実際、近視眼的な部分はあるよ。
JCPはとどのつまり企業連合な組織だし。
EE6でSpringやS2が壊滅したらちょっと面白い。
404:デフォルトの名無しさん
08/03/04 22:48:56
まぁ、いまのところEE勢が壊滅した事しかないのが笑えるよな。
405:デフォルトの名無しさん
08/03/04 23:05:31
なんかunrestricted closureも実装してきているなあ。> BGGA実装
jsr166z.forkjoinもかなりいろいろ増えてるし。
Control invocation syntaxが楽しくてたまらん(ハァハァ
406:デフォルトの名無しさん
08/03/04 23:12:13
クロージャは次期採用はほぼ固まったみたいでもう追いかけてないんだけど、どお、便利?
407:デフォルトの名無しさん
08/03/05 00:27:08
無名内部クラスがあるのにクロージャも作るのか
408:デフォルトの名無しさん
08/03/05 02:34:54
>>406
import java.util.*;
enum s { This, is, a, test; };
public class I {
public static void eachEntry(List<s> l, { s ==>void } block) {
for (s i : l) {
block.invoke(i);
}
}
public static void main(String[] args) {
List<s> l = Arrays.asList(s.values());
for (s i : l) {
System.out.println(i);
}
eachEntry(s i: l) {
System.out.println(i);
}
}
}
409:デフォルトの名無しさん
08/03/05 10:09:05
ruby使ってる奴らは未だにクロージャとイテレーターの区別ついてないだろうけど。
javaやるとクロージャはどういうのかがやっと理解できるのかもな。
410:デフォルトの名無しさん
08/03/05 10:11:44
連中にクロージャなんて意識ないだろ?
411:デフォルトの名無しさん
08/03/05 10:21:06
レスはえーなw
javaの連中もイベント処理でクロージャ(匿名クラス)使ってるって意識はないだろう
イテレータよりは匿名クラス・デリゲートwのほうがクロージャっぽいけど、まあどっちも同じだ
で、使ってみた感想は将来有望とか利用できるアイディアはいろいろ浮かんでくるか?
412:デフォルトの名無しさん
08/03/05 17:31:20
もうJavaはすててScalaでいいんじゃね?
413:デフォルトの名無しさん
08/03/05 18:35:20
俺はrhino派だな。手続き型+OOP+関数型のマルチパラダイムは便利だ。
414:デフォルトの名無しさん
08/03/05 18:36:24
クロージャと匿名クラスは違う
ローカル変数をクロージャが実行される時まで取っておくのが
クロージャの性質だ
415:デフォルトの名無しさん
08/03/05 18:37:18
final 宣言すりゃとっておけるじゃん。
416:デフォルトの名無しさん
08/03/05 18:53:02
たとえばオープンした後自動的にクローズするような処理にもクロージャは便利だ
new File(path).Read(Input in){
...
}
ブロックを抜けたあと勝手にCloseしてくれるようにできる
417:デフォルトの名無しさん
08/03/05 19:05:43
>>414
interface Guess{ int guess(); }
class Fuga{
static Guess hoge(final int i){
return new Guess(){ public int guess(){ return i; } };
}}
個人的にはイテレータとか作るときに使う。
418:デフォルトの名無しさん
08/03/05 23:38:12
>>414>>415
サンプル実装では、
・@Sharedアノテーションを付けた変数は、バインディングがヒープに作られ、
スコープ内にあるクロージャで持ち運ぶ事ができる。書き換えても結果が共有される。
(スティール大先生のクロージャ・コメントの通りの仕様
暗黙のヒープ確保はしないのがJava流)
・BGGA v0.5の通り、finalな変数は持ち運べる。
の両方が可能。
v0.6が出て、@Sharedに相当する修飾子が出来るのかどうか、
その辺の議論はまだ追えてません。個人的には、
Java7はv0.5の仕様のままで、Java8まで持ち越した方がいいような気がします。
先に解決すべき「Open Issues」があるように思うので。
Doug Lea大先生のjsr166y fork-join frameworkがこなれてきてから、
並列実行での"shared"も同時に解決するようなスキームが望ましいと思うので。
419:デフォルトの名無しさん
08/03/05 23:41:19
>>405
> Control invocation syntaxが楽しくてたまらん(ハァハァ
構造化プログラミングでいうところの構造的な制御構造は何でも作れますね。
ifとかwhileとか。
継続とtail jumpがないから非構造的な制御構造は無理だけど。
ただサンプル実装では、>>405の通り、
returnでクロージャの外の関数を出られる実装が出てきそうだけど。
420:デフォルトの名無しさん
08/03/05 23:50:11
参照渡しはまだかね。
421:デフォルトの名無しさん
08/03/05 23:53:00
finalな変数だけ運べれば十分な気がするな
普通の変数を突っ込まなきゃならないケースが思いつかないし
ややこしくて危険でもある気がする
422:デフォルトの名無しさん
08/03/05 23:54:18
finalじゃなくても適当にfinalを仮定してくれればいいやー
423:デフォルトの名無しさん
08/03/05 23:57:14
ローカル変数がスコープ外の影響受けるなんてのは漏洩の副作用と言った方が良い。
リターンバッファのようにあからさまに意図したものならともかく。
424:デフォルトの名無しさん
08/03/05 23:58:33
アノテーションにまで手を伸ばすのは止めて欲しいな。
こんなんじゃXML hellがAnnotation hellに置き換わるだけだ。
425:デフォルトの名無しさん
08/03/06 00:13:42
全く。
アノテーションは、プログラムに付ける付箋紙のような役割から
ロジックと複雑に絡み合ったカオスの元になりつつあるな。
プログラム的な定義は、言語として定義してくれ。
@Shared アノテーションは、アノテーションの誤用としか思えない。
426:デフォルトの名無しさん
08/03/06 00:24:43
勝手な言語拡張をするんじゃなくて、
処理系独自の意味を与えられる(Cの#pragmaのように)
アノテーションを使っているだけだと思います。
もし必要だということになれば、修飾子になるのでしょう。
Doug Lee大先生が今この辺りのことをどうしているかは追えてないです。
ただ並列に動いているクロージャ同士が、
「環境」を共有しているって状況はとても自然で、応用によっては有益なので、
full closureはいつか入るだろうし、また入るべきだと思います。
427:デフォルトの名無しさん
08/03/06 00:26:23
>>425
サンプル実装と仕様提案を混同して議論しないようにしましょう。
>>418に書いたのはサンプル実装のことで、
@Sharedを使うなんて提案は全くありません。
428:デフォルトの名無しさん
08/03/06 00:27:13
Swing App frameworkのActionアノテーションも間違ってる気がする
429:デフォルトの名無しさん
08/03/06 00:31:41
環境といえば、JSR-323が否決されてたような。
430:デフォルトの名無しさん
08/03/06 00:35:45
試行錯誤中だし、戯言に付き合うのも程ほどにw
431:デフォルトの名無しさん
08/03/06 00:39:37
JSR-323って、サマリを見たら昔流行った
MobileAgent系の話のように見えるけど、なんでOS仮想化技術が出てくるんだろう・・・?
Voteのコメントが、何か学生の研究に対するコメントのようで笑えてしまった。
432:デフォルトの名無しさん
08/03/06 00:39:54
List<Action> list = new List<Action>();
for(int i = 0; i < 10; ++i)
{
list.Add( () => Console.WriteLine(i) );
}
foreach(Action action in list)
{
action();
}
これがC#では 10,10,10...と10が10回繰り返される。
finalを付けなきゃいけない場合は
for(int i = 0; i < 10; ++i)
{
final int x = i;
list.Add( () => Console.WriteLine(x) );
}
こうすると0,1,2,3,4...と狙ったような結果になってくれる
まあC#にはfinalないけど
433:デフォルトの名無しさん
08/03/06 00:53:29
歴史的クロージャ
434:デフォルトの名無しさん
08/03/06 00:58:50
>>431
あそこで言っている仮想化は、
OSに対して行う仮想化じゃなくて、
OSがリソースに対して行う仮想化。
例えば、JavaにIPアドレスをmobile可能にする細工を入れるんじゃなくて、
Mobile IP使えば解決する、まあそんな話。
幾らなんでも早急だったと思うし。研究としては悪くないけど。
435:デフォルトの名無しさん
08/03/06 09:44:35
昔はやっと言うよりも、当時の技術(特にハード)で実用的じゃなくて破棄されたけど、
今なら出来そうだというところが大きいんじゃないか。
次は見た目関数型らしきのも入れて、そんなJavaはsmalltalkとかを中心とした昔の技術の集大成でしかないしw
436:デフォルトの名無しさん
08/03/06 09:47:15
昔に流行った
437:デフォルトの名無しさん
08/03/06 10:02:45
>>432
ここは最新追っかけだし、せっかくならJava話をしてC#の話もついでに披露してくれないか
たとえば、おまえの頭にはMacやLinuxにはすごいハッカーがたくさんいるとか考えた事もないだろ?
438:デフォルトの名無しさん
08/03/06 10:07:22
>>437
何いってんのかわかんねえけど俺はクロージャにはfinalなローカル変数が入れられれば
十分だと思っていて、C#ではfinal以外が入れられることでどういう不都合が起こるかを述べている
439:デフォルトの名無しさん
08/03/06 10:14:16
>>438
>>432って不都合か? せいぜい「評価されるタイミングが俺の好みじゃない」っつーだけのような。
初心者が使いやすい、あんな記述やこんな記述でトラブルの元になってるとか、
そこらへんまで言わないとfinal以外が入れられると不都合、って話にはならんような。
440:デフォルトの名無しさん
08/03/06 10:14:19
>>437
お前痛いよ
441:デフォルトの名無しさん
08/03/06 11:37:23
>>439
C#の話はいいです。
442:デフォルトの名無しさん
08/03/06 12:05:48
>>441
C#の話じゃないって。
unrestricted closure には、取り囲むスコープの変数なら final も @Shared もなしで取り込める。
443:デフォルトの名無しさん
08/03/06 12:38:30
unrestrictedはJava7には入りそうにないね。
444:デフォルトの名無しさん
08/03/06 13:17:41
結局C#とかC++の部外者がいると荒れるわけですか
少し花見でもしてたつもりですけど、それなら徹底的に排除するまでですけど?
445:デフォルトの名無しさん
08/03/06 13:25:25
>>437
linux, macの奴らはC#など触ったこともないだろ。
奴らの話を聞くだけで耳が腐るw
所詮C#はドカタ候補専用だしな
446:デフォルトの名無しさん
08/03/06 13:34:48
だから言ってるだろ?C#厨房の相手なんかするなよw
447:デフォルトの名無しさん
08/03/06 13:36:54
>>443
仮に unrestricted が入らなくても @Shared やら、
final int[] みたいに似非参照化すりゃ同じ事ができるわけで。
それにv0.5の仕様には
> All free lexical bindings - that is, lexical bindings not defined within the closure literal -
> are bound at the time of evaluation of the closure literal to their meaning in the lexical context
> in which the closure literal appears.
とかバッチリ書いてあるしなぁ。
unrestrictedが入りそうにないって話も信憑性無いし。
448:デフォルトの名無しさん
08/03/06 13:38:43
そうだな。C#なんて脳みそはVBの奴らとドッコイなのに、こいつらとJavaを同じにされちゃたまらないな。
いつの時代もMSの奴らはキモイってことだな
449:デフォルトの名無しさん
08/03/06 13:56:44
>>447
javac.infoの実装だと、
unrestrictedは==>で区別することになってますね。
=>はjava.lang.RestrictedFunctionなクロージャ。
450:デフォルトの名無しさん
08/03/06 14:03:34
>>449
それは知ってる。
けど unrestricted 入れないつもりなら unrestricted と restricted の区別なんか必要ないんだから
java.lang.RestrictedFunction 自体要らないでしょ。
451:449
08/03/06 14:04:30
でしょって俺に言われても困るけどねw
452:デフォルトの名無しさん
08/03/06 14:20:49
>>440
おれにはJava最新追っかけスレでC#のことをウダウダ言う奴の方がどう見ても痛い
たぶんおまえの方が痛いw
453:デフォルトの名無しさん
08/03/06 14:22:52
C#しか脳がないニートは、はよ面接行けww
454:デフォルトの名無しさん
08/03/06 14:37:56
MS厨ってどこにでも沸くKYだな
455:デフォルトの名無しさん
08/03/06 14:38:23
> Any visible local variable that is initialized or assigned exactly once in the enclosing scope,
> as well as any visible parameter to an enclosing method that is never otherwise assigned,
> is accessible but not assignable within the body of the CICE, whether or not it is explicitly qualified as final.
CICEのルール、BGGAのプロトタイプに導入されてるね。
456:デフォルトの名無しさん
08/03/06 14:57:51
クロージャ厨房も同じくウザイ
457:デフォルトの名無しさん
08/03/06 15:03:45
あと変更入りそうなのは non-local return と local return あたりかなぁ。
{ => method(); } と { => method() } と、ぱっと見て区別つかん。
458:デフォルトの名無しさん
08/03/06 15:22:52
>>455
@Shared も CICE の↓の public とほとんど同じだし、
いいところはマージしてるんじゃ
public int count = 0;
Arrays.sort(array, Comparator<Integer>(Integer v1, Integer v2){
count++;
return v1.compareTo(v2);
});
System.out.println(count);
459:デフォルトの名無しさん
08/03/06 15:41:22
>>418
今日落としたプロトタイプ実装だと、
@Sharedつけなくても警告がでるだけでコンパイルエラーにならんような
これ、ホームページには updated 2008-02-22 って書いてあるけど、
解凍すると closures-2008-03-05ってディレクトリができる……
コッソリと何か変わってたりするんだろうか?
460:デフォルトの名無しさん
08/03/06 16:36:45
ああ、それなら最近変ったんじゃないかな。> @Sharedいらず
2008-02-26ってのもあるし。
461:デフォルトの名無しさん
08/03/06 19:22:17
2008-02-12 が残ってたから @Shared なしを試してみたけど
警告は出るけどコンパイルエラーにはならなかった。
462:デフォルトの名無しさん
08/03/06 19:37:46
単にコンパイルエラーにするのが面倒なだけじゃね
463:デフォルトの名無しさん
08/03/06 20:12:41
クロージャの話を他の言語で例示しただけでフルボッコされるなんて、
このスレじゃまともな技術的議論はできそうにないな
464:デフォルトの名無しさん
08/03/06 20:27:43
そりゃ保守の集まりでしかないから論議なんかはじめからする気ないんじゃ。
JCP = バチカン、JSR = 教典、それ以外の論議 = 異端 = 叩き、な
ご熱心な殉教者しか居ないのは昔からの事。あ、こりゃ保守というか権威主義か。
465:デフォルトの名無しさん
08/03/06 21:12:55
おまえ毎日同じこといってるな
466:デフォルトの名無しさん
08/03/06 21:14:48
そりゃこんだけ毎度同じパターンばかり見せれるとな。
467:デフォルトの名無しさん
08/03/06 21:26:17
で、Javaのクロージャの場合>>432は
10,10,10...?0,1,2,3,4...?
468:デフォルトの名無しさん
08/03/06 23:18:14
保守の集まりというのは以前も書いてあったけど、一体どういうことだよ。
バチカンとか経典とか、お前頭は相当おかしくなっちまってるようだなw
469:デフォルトの名無しさん
08/03/06 23:20:00
C++(C#?)のやりすぎだろ。ストールマンの友達かなんかだろ。たぶん。
470:デフォルトの名無しさん
08/03/06 23:32:55
>>463
技術的な議論とかしたいなら、せめてJavaスレにふさわしくJavaでやれよ。
C#スレでPHPとかVBとかで議論wとか通用しないのと同じだろ。
これに気がつかないおまえのバカさ加減にあきれるw
471:デフォルトの名無しさん
08/03/06 23:33:08
>>432
それスタックの状態を保存するという考えに基づけば正常な動作じゃないか?
472:デフォルトの名無しさん
08/03/06 23:35:33
>>463
もうおまえはこのスレに来なくていいよ。おまえみたいな奴が一人でもいると、スレが荒れるだけだから。
473:デフォルトの名無しさん
08/03/06 23:37:22
>>464も忘れてたw
バチカンとか意味不明な奴もお花畑板いけよw
474:デフォルトの名無しさん
08/03/06 23:39:11
間違えてageちまったじゃねーかよー
どうしてくれるんだ?おい、おまえら!!
>>463-464
おまえら責任とれよな
475:デフォルトの名無しさん
08/03/06 23:40:12
何だこの酔っ払い
476:デフォルトの名無しさん
08/03/06 23:41:22
英語は使えなくても叩くときだけは大張り切りですな。
477:デフォルトの名無しさん
08/03/06 23:48:20
>>464
こういうことは言うのは派遣かニートだろ。
こんな社会のカスは相手にすんなよ。
違うスレでは「ニート達よ団結せよ!」とかいってる奴だからw
478:デフォルトの名無しさん
08/03/06 23:51:25
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。
偽・スルー みんなにスルーを呼びかける。実はスルーできてない。 ← >>477
予告スルー レスしないと予告してからスルーする。
完全スルー スレに参加すること自体を放棄する。
無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。
失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。
願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。
激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。
疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。
乞食スルー 情報だけもらって雑談はスルーする。
質問スルー 質問をスルーして雑談を続ける。
思い出スルー 攻撃中はスルーして、後日その思い出を語る。
真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。
偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。
3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。
4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
479:デフォルトの名無しさん
08/03/06 23:51:43
英語云々以前に、クロージャのネタも深すぎでウザイ
明日も分からない全然決まってもないことだろ
久々にすれ盛り上がってるけど、他にネタないのか
結局は海外のソースに依存することになるんだろうけど、jdk1.8ねたとか、
いまホットなライブラリネタとかないの?
480:デフォルトの名無しさん
08/03/07 00:00:27
>>477
何この必死君
481:デフォルトの名無しさん
08/03/07 00:02:00
>>478
これ初だけど、いつのコピペ?
というかスルー以前(あおりとかあらし以前)に
次世代JavaスレなのにC#とかC++とかスレ違いじゃないかのか?
C#とかC++で出来てるだろ、だからJavaでもやれよって論法が多いが、こいつらサルだろw
482:デフォルトの名無しさん
08/03/07 00:03:09
>>479
ホットなライブラリ(笑)
483:デフォルトの名無しさん
08/03/07 00:03:40
>>480
いや、バチカンとかぬかす奴よりは、やつの言い分の方が正しい
484:デフォルトの名無しさん
08/03/07 00:05:15
で、「保守の集まり」ってのは一体何のことか説明してくれないか?
おまえ、いつも同じこといってるだろ
485:デフォルトの名無しさん
08/03/07 00:08:32
ここは誰かが JCP の動向を翻訳してくれるのを口を空けて待ってるスレですよ。
たまに自分が判定する側の人間になってると勘違いしてる人もいるようですけど。
486:デフォルトの名無しさん
08/03/07 00:13:31
>>477
このスレ初めて見ただけど、確かにそいつはゴミみたいなやつだな。
というか、そばに同じようなキモイ奴がいるんだよな。
こいつ、何とかしてやってくれよ。
487:デフォルトの名無しさん
08/03/07 00:18:09
> こんな社会のカスは相手にすんなよ
> このスレ初めて見ただけど
わざわざ自爆宣言するの流行ってるの?
488:デフォルトの名無しさん
08/03/07 00:27:52
>>487
スルー出来んのか?おまえもカスだしなw
489:デフォルトの名無しさん
08/03/07 00:33:05
次からテンプレに 「俺様アイディアの披露禁止」 って書いといてくれよ。
いちいち食って掛かるバカが多すぎる。
490:デフォルトの名無しさん
08/03/07 00:33:34
チャットは自粛してくださいな。
知能のある方は以下正常化でよろすく。
491:デフォルトの名無しさん
08/03/07 00:36:25
派遣は明日も早いし5時起きだろ?早く寝ろよww
ニートはもともと社会のカスだし別にどうでもいいからwwwww
492:デフォルトの名無しさん
08/03/07 00:40:26
カス達よ団結せよ!
493:デフォルトの名無しさん
08/03/07 00:42:51
>>466
>見せれるとな。
みせれる?
494:デフォルトの名無しさん
08/03/07 00:47:21
>>492
ワロタww
495:デフォルトの名無しさん
08/03/07 00:54:49
もう追いかけてないから知らないけど、クロージャの残りの論点は、return, breakをどうするか(表記とかも)ぐらいだろ。
それからscalaとかgooglebyとか勧めてる奴もいるけど、今ならrubyだろうな。
rubyなんて正にモルモンしてるけど、perlほどキチガイじゃない。(上にあったのはバチカンだったか?)
496:デフォルトの名無しさん
08/03/07 00:57:28
このスレひっでえなwwwww
497:デフォルトの名無しさん
08/03/07 00:59:55
我こそは最前線 Java を追う先駆者と自負されてる方々ばかりですから。
498:デフォルトの名無しさん
08/03/07 01:00:27
Javaの最前線にはひどい人材しかいないようだな
499:デフォルトの名無しさん
08/03/07 01:01:52
>googleby
多分ネタだろうけど、一瞬googleboyに見えたwww
500:デフォルトの名無しさん
08/03/07 01:05:30
>>498
Javaにも最前線にも失礼。
全人類的にこのスレッドは汚物、失礼なものにあたる。
501:デフォルトの名無しさん
08/03/07 01:09:05
>>497
英語は出来ないけどなw
502:デフォルトの名無しさん
08/03/07 01:15:28
>>500
早く寝ろよ。派遣先は遠いから明日も早く起きなければいけないんだろ?
503:デフォルトの名無しさん
08/03/07 01:17:42
>>500
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
全人類的w
504:デフォルトの名無しさん
08/03/07 01:18:54
Javaの未来は暗いな
505:デフォルトの名無しさん
08/03/07 01:19:20
>>500
おまえは、カマキリでも食っちまったんじゃないか?
506:デフォルトの名無しさん
08/03/07 01:23:43
IDが無くてもageてるのは同一人物だろうな・・・
jdk7の次のビルドでも出てくれば少しは矛先が変わるのになぁ。
12月からビルド止まったままだし・・・
507:デフォルトの名無しさん
08/03/07 01:28:23
全人類的とかいってる奴、あと保守でモルモン経典うんちゃらとかぬかしてる奴も
一緒に死ねよ。もうおまえの負けだな。
はよオナニーして寝ろw
508:デフォルトの名無しさん
08/03/07 01:29:22
506のアドバイスでsage付けるようにしたのか
509:デフォルトの名無しさん
08/03/07 01:30:08
まずID制の導入を嘆願するところから始めなきゃならんな
510:デフォルトの名無しさん
08/03/07 01:36:20
また荒らしか。
511:デフォルトの名無しさん
08/03/07 01:37:44
>>508-510
はよオナニーして寝ろYO
512:デフォルトの名無しさん
08/03/07 01:44:17
ID無くてもBooでがいしゅつになるかで同一チェックできるんじゃないかと思えてきた。
513:デフォルトの名無しさん
08/03/07 01:57:05
>>512
誰だおまえ?
514:デフォルトの名無しさん
08/03/07 02:01:03
>>513
これが噂の負け組みの人だから、かまっちゃダメ!!
515:デフォルトの名無しさん
08/03/07 02:03:03
516:デフォルトの名無しさん
08/03/07 02:30:30
こんなところにも負け組みの人が漂流してるんですね(笑い)
517:デフォルトの名無しさん
08/03/07 02:31:37
ID、IDってうるさい人、あなたも負けたんですか(笑い)
518:デフォルトの名無しさん
08/03/07 02:37:45
ちょっとわからないことがあるのですが、
ゴズリンさんいますか?
519:デフォルトの名無しさん
08/03/07 03:27:18
今日の夜は長いですねw
冶金お疲れ様っす!!
520:デフォルトの名無しさん
08/03/07 08:09:52
>>495
Scalaは中の人の議論でもよく出てくる言語だよ。
やっぱりよく出来てる。使ってねーけどw
521:デフォルトの名無しさん
08/03/07 08:16:56
Control invocation syntaxで算術ifも書けるね。うれしい。
522:デフォルトの名無しさん
08/03/07 15:55:38
>>520
使えば分かるよ。Javaから見れば何でもありだからw
523:デフォルトの名無しさん
08/03/07 19:51:10
ニート達はもうどっか行っちまったか?
524:デフォルトの名無しさん
08/03/07 22:44:28
ニート、ニートってうるさいんだよ!Java使ったってC#使ったっていいだろ!!!
525:デフォルトの名無しさん
08/03/07 22:52:21
何この自演クセーの
526:デフォルトの名無しさん
08/03/08 00:19:40
派遣はいていいですか(・_・)
527:デフォルトの名無しさん
08/03/08 01:09:17
>>525
ニート乙
528:デフォルトの名無しさん
08/03/08 01:10:46
図星だったか…
529:デフォルトの名無しさん
08/03/08 11:59:23
派遣はいていいですか(・_・)
530:デフォルトの名無しさん
08/03/08 12:51:33
しつけーよwいいよ!いていいよw、むしろお願いするw
531:デフォルトの名無しさん
08/03/08 13:15:38
派遣はいてないですか!?
532:デフォルトの名無しさん
08/03/08 17:01:22
>>530
ニートなんですが…ボクちんもいいですか(・=・)
533:デフォルトの名無しさん
08/03/08 22:44:17
>>530
誰だってJava使っていいですよね?
534:デフォルトの名無しさん
08/03/09 11:44:37
>>522
何でもできるとかそんなことじゃなくて、すごく良く設計されている。
535:デフォルトの名無しさん
08/03/09 15:38:37
>>534
ボクちんニートなんですが…
536:デフォルトの名無しさん
08/03/09 22:07:15
rubyとscalaの大きな違いは、JavaVM上で動かすことを前提にしているかどうかだな。
537:デフォルトの名無しさん
08/03/09 22:25:37
馬鹿そう…
538:デフォルトの名無しさん
08/03/10 01:34:42
>>478
> 激突スルー
539:デフォルトの名無しさん
08/03/11 11:37:58
どう使うかに絞った簡単な解説
Closures for Java
URLリンク(jazoon.com)
540:デフォルトの名無しさん
08/03/11 19:49:32
ふと思った。例に出てくる for each とかで
for each (String name, Thing thing : myMap) {
if (thing.isCocksucker()) {
return; // ← コイシはどこに return するのかね?
}
doSomething(name, thing);
}
541:デフォルトの名無しさん
08/03/11 19:57:15
for eachの置かれているメソッドから抜ける。
542:デフォルトの名無しさん
08/03/11 20:24:55
>>540
>>540
>>540
>>540
543:デフォルトの名無しさん
08/03/11 20:45:25
そーいや、BGGA だと Listener系どーすんだろ?
java.awt.event.ActionListener とかみたいに、メソッド一個の場合は良いけど
java.awt.event.MouseListener とかみたいに幾つもメソッドある場合とか。
MouseAdapter 使っても名前指定できないとアレだし。CICE も同じ問題かかえてる。
FCM だと Named inner method が作れるから、この点は問題にならんのだけど。
やっぱ BGGA だと
public void onMouseClicked({MouseEvent e => void} block) {
addMouseListener(new MouseAdaptor(){
public void mouseClicked(MouseEvent e){ block.invoke(e); }
});
}
みたいな感じにすんのかなぁ? メソッド数が大変な事になるような気もするけど。
544:デフォルトの名無しさん
08/03/11 20:57:59
クロージャより関数オブジェクトとか関数リテラルみたいなラムダの方が欲しいんだけどなぁ。
545:デフォルトの名無しさん
08/03/11 21:32:42
>>544
クロージャと、関数オブジェクトとか関数リテラルみたいなラムダとの違いって?
546:デフォルトの名無しさん
08/03/11 22:20:39
>>543
void addMouseActions(java.awt.Component foo,
{MouseEvent e => void} clicked,
{MouseEvent e => void} released,
{MouseEvent e => void} entered) {
foo.addMouseListener(new MouseListenerBuilder()
.setMouseClicked(clicked) // null check wished?
.setMouseReleased(released)
.setMouseEntered(entered);
}
547:デフォルトの名無しさん
08/03/11 23:16:07
>>546
それだと順番間違えやすいし、順番間違えてもコンパイル時にチェックできないから
実行時に変な動作してから初めて気付く事になるような……
548:デフォルトの名無しさん
08/03/12 01:37:02
じゃあブロック引数は一つの関数にすればいいんじゃないの?
変な人。
549:デフォルトの名無しさん
08/03/12 08:09:04
それじゃ>>543と変わらん
550:デフォルトの名無しさん
08/03/12 09:22:49
builderパターンを使うってアイデアもあるけど、
実際比べてみると匿名クラス使う場合とタイプ数もあんまり変わらんのよね。
builderパターン + クロージャ:
addMouseListener(new MouseListenerBuilder().setMouseClicked({MouseEvent e => System.out.println("clicked"); }));
adapter + 匿名クラス:
addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e){ System.out.println("clicked"); } });
551:デフォルトの名無しさん
08/03/12 12:03:38
クロージャってこういう呼び出し方出来ないんだろうか・・・。
({arg => hogehoge})(arg);
552:デフォルトの名無しさん
08/03/12 12:06:59
クロージャーよりもやっつけで盛り込んだ既存のライブラリ仕様を洗練させて欲しいんだが。
553:デフォルトの名無しさん
08/03/12 12:34:23
>>551
BGGA v0.5にはない。
554:デフォルトの名無しさん
08/03/12 12:34:44
洗練って・・・
下位互換考えるともう変更できんだろ・・
555:デフォルトの名無しさん
08/03/12 12:37:22
>>551
それだと単なるキャストだね。
argがクラス名と変数名/フィールド名で重複してるけど。
556:デフォルトの名無しさん
08/03/12 12:39:02
>>552
openjdkあたりにパッチ送れば? acceptされるとは限らんけど。
557:デフォルトの名無しさん
08/03/12 12:43:30
というか勝手にクラスライブラリ作ればいい。
将来採用されることもありうる。
558:デフォルトの名無しさん
08/03/12 13:50:47
必要になれば、Cのtypedefみたいなのでもっとパワーアップしてるのがサポートされるんじゃないか。
タイプ量が多いとかはエイリアスで解決できるわけで、クロージャの言語仕様とは全く関係ない。
といいつつもJavaではtypedefみたいのは永遠とサポートされないと思うけど。
559:デフォルトの名無しさん
08/03/12 14:21:24
typedefとマクロはないだろうな
560:デフォルトの名無しさん
08/03/12 15:14:22
JavaFX はどうなったのさ。
561:デフォルトの名無しさん
08/03/12 16:00:16
>>558
ヘッダファイルを使うC言語と違って、
Javaのコンパイル単位はtypedefと相性悪いでしょ。
publicクラス毎に、何回も同じtypedefを書く必要出てくるし。
あと、typedef入れるより型推論が入った方が嬉しいぞ。
562:デフォルトの名無しさん
08/03/12 17:09:38
Cのtypedefのパワーアップとして考えられるのは、文字通りtype definedのこと。
型推論と似てるけど、型推論は動的にやるでしょw
もしあるなら、typedefは静的におこなわれる、型(class)別名で、
変数のようにスコープを持つとかなら、
CやC++ templeteのようにバグとか追跡不可能で
エラーメッセージも意味不明にまでなったりしないと思う。
だから、やっぱり長いしタイプ量が変わんないじゃんというのは分かるけど、
タイプ量が多いのとクロージャとは関係ない。
563:デフォルトの名無しさん
08/03/12 17:13:03
今やるならアノテーションになるけど、
結局はtypedefやりたいならアノテーションつかってツール作って自分でやってくれよってなるんじゃないか。
564:デフォルトの名無しさん
08/03/12 17:16:42
Adaのtypedefならいいわけか
565:デフォルトの名無しさん
08/03/12 17:56:30
typedefというよりも、別名(エイリアス)ってのがあればいいってわけだ
566:デフォルトの名無しさん
08/03/12 18:25:48
>>562
タイプ量が多いのとクロージャは関係ないよ。
タイプ量が多いと builderパターン+クロージャで
リスナを生成するのが面倒くさいってだけで。
それに別名定義できても、C言語のヘッダファイルみたいなものがないと
それほど便利にはならないっしょ。それよりは型推論の方がいいって事。
型推論も別名定義も両方あってもいいけどさ。
567:デフォルトの名無しさん
08/03/12 18:35:57
そーいや、>>45には type aliasingあるけど、これも続報ないからどーなってんのかわからんね。
もっとも、これは generics でバカみたいに長くなった型名を短くてわかりやすいものにするのが
主な目的っぽいから、>>550 みたいに generics使ってない上に、
MouseListenerBuilder やら setMouseClickled やら MouseEvent やらの
個々の識別子は長すぎて読み易さを低下させてる、ってわけでもないのに
使うようなモンでもねーと思うが。
568:デフォルトの名無しさん
08/03/12 18:47:24
もういっそプリプロセッサがあれば良いんじゃね?
569:デフォルトの名無しさん
08/03/12 19:22:09
>>567
>>550ならtype aliasingいらんだろ。
元から MouseListenerBuilder やら setMouseClicked みたいな名前使わなけりゃいいんだし。
っても、別名使うにしろ、元のから短い名前で定義するにしろ
可読性とのトレードがあるから短い名前考えるのも面倒だわな。
どっちかっつーと、>>116みたいな引数の型推論入れたほうが楽だしタイプ量減る。
builderパターン + クロージャ + 短い名前:
addMouseListener(new MLB().sMC({MouseEvent e => System.out.println("clicked"); }));
builderパターン + クロージャ + >>116みたいな引数の型推論:
addMouseListener(new MouseListenerBuilder().setMouseClicked({ e => System.out.println("clicked"); }));
570:デフォルトの名無しさん
08/03/12 19:24:45
> addMouseListener(new MLB().sMC({MouseEvent e => System.out.println("clicked"); }));
なにこれ
571:デフォルトの名無しさん
08/03/12 19:30:27
>>570
よーするに、可読性落とさないような名前が思いつかないなら
>>550のタイプ量は妥当だって事。
572:デフォルトの名無しさん
08/03/12 21:31:24
そもそも、タイプ量だけなら >>543 使って
onMouseClicked({MouseEvent e => System.out.println("clicked"); });
で良いんだし。もしくは >>543 と control invocation syntax 使って
onMouseClicked(MouseEvent e){ System.out.println("clicked"); }
573:デフォルトの名無しさん
08/03/12 21:42:20
別にクロージャーが入っても何か新しいことが出来るようになったり
下らないミスが減ったりするわけじゃないんでしょ。拡張 for 並みに
どうでもいいんだけど。
574:デフォルトの名無しさん
08/03/12 21:43:13
>>572
エイリアスやらマクロやらプリプロセッサやら出してくるぐらいなら、そっちのがいいね
575:デフォルトの名無しさん
08/03/12 22:01:29
拡張forは便利だろ。
いちいちインデクサなんて書いてられるか可読性も落ちる。
576:デフォルトの名無しさん
08/03/12 22:04:29
インデクサ? Iterator の間違いじゃね?
577:デフォルトの名無しさん
08/03/12 22:10:25
javax書き換えられないようなsuperpackageはいらない、Sunの失態が無いなら良いけど
578:デフォルトの名無しさん
08/03/12 23:00:42
↑ん?どういうこと?
579:デフォルトの名無しさん
08/03/12 23:01:12
>>575
C#に洗脳されすぎw
580:デフォルトの名無しさん
08/03/12 23:03:18
クラスとかメソッド名が長いってだけなら、ビルダークラスとかを継承してオーバーライドして自分で短い名前にしてくれよ。
それぐらい頭使え。
581:デフォルトの名無しさん
08/03/12 23:12:34
void hoge(a){actionPerformed(a);]
で、短いメソッド名で実装して、それを呼び出すことね。
582:デフォルトの名無しさん
08/03/12 23:26:28
indexerって普通の英語なんだが。
583:デフォルトの名無しさん
08/03/12 23:30:00
Javaじゃそんな言葉使わんしここ日本。
584:デフォルトの名無しさん
08/03/12 23:31:02
普通の英語って事は「索引を作る人」って意味で使ってるとか?
585:デフォルトの名無しさん
08/03/13 00:02:39
>>583
お前は日本語でプログラム書くのか?
586:デフォルトの名無しさん
08/03/13 00:16:46
演算子オーバーロードが言語仕様にあれば
Javaでもインデクサって普通に呼ぶだろうね。
Javaもinterface経由で演算子オーバーロードに対応したらいいのに。
AppendableとかCalculateableみたく、目的を明示すれば設計者も馬鹿しないでしょ。
587:デフォルトの名無しさん
08/03/13 00:21:01
演算子オーバーロードは絶対にサポートしないといってたけど。
588:デフォルトの名無しさん
08/03/13 00:28:40
>>585
いやいや、言いたいのは話をわざわざ分かりにくくするために英語にする必要はないだろうということ。
589:デフォルトの名無しさん
08/03/13 00:33:24
C#ちゃんはいいかげんに巣に帰れよ
590:デフォルトの名無しさん
08/03/13 02:05:45
インデクサくらい理解してやってくれ。
ループ抽象(拡張for)
コントロール・インヴォケイション・シンタックス
は過激に便利ですよ。>>539のp4-6見てください。
プログラム構造がかなりすっきりまとまります。
プログラム内でのコードの共通化も進みますし。
591:デフォルトの名無しさん
08/03/13 03:43:59
↑もうこなくていいから。死んでくれ
592:デフォルトの名無しさん
08/03/13 06:40:12
病的な過剰反応だな。明らかにネットに向いてない。
593:デフォルトの名無しさん
08/03/13 14:00:38
>>592
おまえも
594:デフォルトの名無しさん
08/03/13 21:56:17
>>561
別に相性は悪く無いと思う
以下のような感じでstatic importでtypedefを取り込めるような仕様にしておけば
問題無し
-- A.java --
package a;
public class Alias {
type FileName = String
}
-- B.java --
import a.Alias._;
public class B {
public static java.io.RandomAccessFile open(FileName name) {
....
}
}
595:デフォルトの名無しさん
08/03/13 22:49:58
>>594
それをやるには static import とは別の仕組みが必要になるし、
どうせやるなら class Alias みたいなものをヘッダファイルモドキとして使うのは間抜けすぎる。
596:デフォルトの名無しさん
08/03/13 23:59:35
>>595
それ言っちゃおしまいでしょ。
java.lang.Math とか java.util.Collections とか、
クラス外にメソッド置いとけるんならクラス外に置きたいようなのは標準APIにも多いし。
Java でやるなら >>594 みたいなやり方しかないと思うけどね。
597:デフォルトの名無しさん
08/03/14 00:01:58
>>562
> 型推論と似てるけど、型推論は動的にやるでしょw
MLなどの型推論はコンパイル時に静的にやるよ。
動的だったら、型を推論するまでもなくチェックすればいい。
>>567が言っているような、
generics使って汎用に書かれたクラスに、
具体的なクラスを与えて、新たなクラスとしてpublicにする、
って機能は必須だと思う。
ただconcept(C++), type class(haskell)のような形の方が
より汎用でスマートだと思う。単なるエイリアスじゃなくて
両クラスのグルーとなるコードも加えられるし。
598:デフォルトの名無しさん
08/03/14 00:05:28
>>596
クラス外メソッド定義とクラスエイリアスは別件。
599:デフォルトの名無しさん
08/03/14 00:15:29
>>598
クラス外メソッド定義したいって言ってるんじゃなくて
言語仕様が許すなら必ずしもクラス内に置く必要ないエイリアスやメソッドを
クラス内に置かなきゃいけないのは等しくアレだって事
600:デフォルトの名無しさん
08/03/14 02:39:52
アノテーションでいいよ。機能的には違うけど、本質的に同じだし。
601:デフォルトの名無しさん
08/03/14 03:01:16
クロージャーなんて既存機能で十分まかなえるものの焼き直しなんかより
もっと AOP 的設計が出来るようなアプローチしろよ。インスタンスフィールドへの
アクセスもトラップできるようにすればそもそもプロパティ拡張もいらんだろが。
602:デフォルトの名無しさん
08/03/14 03:44:37
クロージャで演算子オーバーロードもとラップできるといいけどな
603:デフォルトの名無しさん
08/03/14 05:49:16
> インスタンスフィールドへのアクセスもトラップできるようにすれば
フィールドアクセスがめちゃくちゃ遅くなりそうだな
604:デフォルトの名無しさん
08/03/14 06:29:16
final 宣言されてない getter/setter と同等にできるだろ。めちゃくちゃの根拠が不明。
まぁプロパティアクセスに関しては「後で」「静的に」「他のソースを修正せずに」アクセサを
追加できれば十分だが。
605:デフォルトの名無しさん
08/03/14 06:51:54
また変な奴が常任してしまったな。
606:デフォルトの名無しさん
08/03/14 06:54:17
JS乙
607:デフォルトの名無しさん
08/03/14 07:11:52
C#厨房よりはましw
608:デフォルトの名無しさん
08/03/14 07:28:45
というかおまえ誰だよ
609:デフォルトの名無しさん
08/03/14 07:33:04
俺ビルジョイ
610:デフォルトの名無しさん
08/03/14 07:58:33
JSじゃイニシャル違うじゃんかよ
611:デフォルトの名無しさん
08/03/14 10:58:17
>>604
そか? 隠蔽されたフィールドに対するアクセスとかも考えたら
プロパティモドキじゃ対応できないし馬鹿みたいにでかい仕組みが必要になると思うが。
612:デフォルトの名無しさん
08/03/14 12:18:31
JKが女子高生なんだからJSは・・・
613:デフォルトの名無しさん
08/03/14 12:22:35
専門学校生だよね
614:デフォルトの名無しさん
08/03/14 12:30:48
>>611
それだけなら何とかなると思うが……
もっとも、リフレクション対応までして「インスタンスフィールドアクセスのトラップ」
できるようにするより他の事にエネルギー使って欲しいぞ。
615:デフォルトの名無しさん
08/03/14 15:49:59
J 常識的に
S セックルして
616:デフォルトの名無しさん
08/03/14 16:03:51
>>611
現時点でも少なくともリフレクション程度は確保できる。
まぁフィールドアクセスはそれも包含できるという意味で引き合いに出しただけで本意は別。
ゴリゴリ書くしかなかったのを簡素化したいのはもっともだが、なら無名内部クラスより
DI の標準様式一つでも考慮しろと。
617:デフォルトの名無しさん
08/03/14 16:14:40
> DI の標準様式一つでも考慮しろと。
?
618:デフォルトの名無しさん
08/03/15 01:41:01
あれ?JFileChooserが遅いバグって6u5までのどこかで修正入った?
619:デフォルトの名無しさん
08/03/15 10:17:10
>>541
つーか選択肢は二つくらい(?)あって
・クロージャから抜けるのみ ・・ >>540のコードなら、doSomething() が実行されないだけで for each は続く
・for each の置かれているメソッドから抜ける
「JavaのクロージャはこれまでのListenerの構文糖衣だぜ」ってんなら
前者が選ばれるだろうなと思ってさ。
620:デフォルトの名無しさん
08/03/15 10:19:34
>>619
> 「JavaのクロージャはこれまでのListenerの構文糖衣だぜ」ってんなら
違う。
621:デフォルトの名無しさん
08/03/15 10:32:19
匿名クラスの構文糖って言いたかったんかな
622:デフォルトの名無しさん
08/03/15 11:45:56
クロージャのreturn周りはどうなるのかホントわかんないな。
ECMAScript風になるのか、ruby風になるのか。
623:デフォルトの名無しさん
08/03/15 11:54:42
C#風に、内容に expression しか書けないクロージャ(ラムダ式)と、
statements が書けるクロージャの2種類作るってのもアリだと思うんだけど。
624:デフォルトの名無しさん
08/03/15 11:54:49
どっちでもない
625:デフォルトの名無しさん
08/03/15 12:41:25
ruby風はありえないだろ
何がどこに抜けるんだかバージョンによって変わるだなんて
626:デフォルトの名無しさん
08/03/15 13:29:50
returnで脱出する最外レベルはメソッドであって、
クロージャやブロックではない。
詳しくは URLリンク(www.javac.info) を読め。
627:デフォルトの名無しさん
08/03/31 04:07:09
Listenerを登録するという設計自体がクロージャと相性が悪いわけか
なんでこんな設計にしたんだ
628:デフォルトの名無しさん
08/03/31 04:15:55
他に手がないからだろ
629:デフォルトの名無しさん
08/04/01 08:58:11
>>627
てか他に手は無いだろ
630:デフォルトの名無しさん
08/04/02 02:03:03
>>627
相性が悪いって程でもないと思うが
確かBGGAでは、function typeをListenerに暗黙に変換するための
仕掛けが用意されるんじゃなかったっけか
631:デフォルトの名無しさん
08/04/02 09:54:37
>>630
ActionListenerみたいにメソッド一個しか無い場合は変換できるけど、
BGGAには、MouseListenerみたいにメソッドいっぱいある場合の変換の仕掛けはないよ。
named inner methodがあるFCM と比べると、BGGAとXxxListenerは相性悪い。
632:デフォルトの名無しさん
08/04/02 10:02:50
URLリンク(tronicek.blogspot.com)
method reference だそーです。
method reference に '#' 使うのが平気な感覚もってるのに
accessing property に '.' 以外の演算子使うのってダメなんかねぇ…… と思ったり。
633:デフォルトの名無しさん
08/04/02 10:50:41
listOfArgumentTypesは必要かね?
継承に絡まない型推論はしない主義だから必要になるのかな。
文脈は常に強く型付けされているはずだが。
634:デフォルトの名無しさん
08/04/02 10:59:04
もう Method の静的解決 (Foo.class みたいな) でええやん。関数ポインタみたく使えりゃええんじゃろ。
635:デフォルトの名無しさん
08/04/02 11:00:07
static import で listOfArgumentTypes 書けるようにしてくれませんかね?
636:デフォルトの名無しさん
08/04/02 19:35:24
>>633
本来なら通常は要らんと思うけど、同名のメソッドがオーバーロードされてる
場合必要になるから、必須にしてるんじゃないかな?
637:デフォルトの名無しさん
08/04/02 19:41:39
それは型情報で分かるから。
638:デフォルトの名無しさん
08/04/02 20:49:02
>>634
ちがうよ。変数スコープが重要
639:デフォルトの名無しさん
08/04/02 21:46:47
>>637
contravariant な変換許すなら、型情報だけから必ず判るわけじゃないから
listOfArgumentTypes 省略しないタイプも必要だと思うぞ。
省略できても良いと思うけど。
640:デフォルトの名無しさん
08/04/02 23:01:51
>>637
(System.out#println(String)).invoke("Foo")
みたいな場合を考えると必要なケースもあるよってこと
もちろん、必要じゃないケースもあるから省略はできてもいいと思う
もちろん、上のような式を実際に書く必要はないだろうけど、文法上
書けるなら対策は必要になるわけだ
641:デフォルトの名無しさん
08/04/09 23:28:18
そろそろjdk1.7はリリースされるの?
642:デフォルトの名無しさん
08/04/10 00:19:26
来年の始め頃じゃないか
643:デフォルトの名無しさん
08/04/10 00:27:41
1.6updateN が出てから 1年ぐらいは必要じゃないかと思うが
644:デフォルトの名無しさん
08/04/10 09:45:57
なんだ。まだか。
645:デフォルトの名無しさん
08/04/10 21:34:28
Java7からと思ってたが、Java KernelはUpdate Nから入るのね。
JMFあたりも自動ダウンロードしてくれるならありがたい限りだけどどうだろ。
646:デフォルトの名無しさん
08/04/18 12:48:24
JDK7 build25
URLリンク(download.java.net)
URLリンク(download.java.net)
647:デフォルトの名無しさん
08/04/19 06:58:13
クロージャーなんかよりも、入出力ストリームや Lock 使った try-finally 使いまくりのコードを
きれいに書ける構文考えてくれよ。synchronized と違和感ないような (これもブロック抜けるときに
モニタ開放するし)。
try(Writer out = new FileWriter("foo.txt")){
...
} catch(IOException ex){...}
↓みたいな。二重tryでもいいや。
Writer out;
try{
out = new FileWriter("foo.txt")){
...
} catch(IOException ex){
...
} finally{
try{ if(out != null) out.close(); } catch(IOException ex){throw new RuntimeException(ex);}
}
648:デフォルトの名無しさん
08/04/19 08:59:28
それは既に入る予定だが?
しかもクロージャを使って。
649:デフォルトの名無しさん
08/04/19 09:30:50
>>647
つ control invocation syntax
650:デフォルトの名無しさん
08/04/24 14:22:07
次のjava7でクロージャ以外で主要な目玉機能ってなんですか?
651:デフォルトの名無しさん
08/04/24 16:03:13
俺はダグ・リー先生のjsr166y.forkjoinがどうなるかが最大の関心事
素晴らしすぎ。
652:デフォルトの名無しさん
08/04/24 16:21:19
今度の JavaOne で dolphin の進捗も発表されんじゃね?
653:デフォルトの名無しさん
08/04/24 17:00:32
クロージャ以外は特にないよ
654:デフォルトの名無しさん
08/04/24 20:05:44
fork-joinはメニーコア時代の必需品になるだろうし重要だと思う。
そんな時代だと永続性ユニットとしてRDBMSだけじゃなく、
これとMemoryMappedFileあたりと組み合わせたやつとか使いそう。
655:デフォルトの名無しさん
08/04/24 21:35:45
FileじゃなくてOODBください ><;
656:デフォルトの名無しさん
08/04/27 15:47:45
いつまでも実現しないMVMは?
657:デフォルトの名無しさん
08/04/29 15:06:35
JDK7 build26
URLリンク(download.java.net)
URLリンク(download.java.net)
658:デフォルトの名無しさん
08/05/04 23:56:54
LINQみたいなのは、はいらんの?
quaereのような式言語っぽいやつじゃなくて言語実装として組み込まれてるのがほしい。
659:デフォルトの名無しさん
08/05/05 00:12:37
スクリプト関連ほんとに追加されるのかな~
660:デフォルトの名無しさん
08/05/13 03:23:42
スクリプト関連は、やるだろうね。
Java一本が難しくなった今、他言語のサポートは急務
LINQみたいなのは、能力的に無理そう。
661:デフォルトの名無しさん
08/05/16 19:50:57
method refarenceなかなかいいんじゃないの?
Integer#parseInt(String);のやつ
662:デフォルトの名無しさん
08/05/20 00:41:53
JavaFXをプッシュしてるけどSunは、まともなオーサリングツール作る気あるのか?
どう考えても負け戦な気がするんだけど。
663:デフォルトの名無しさん
08/05/20 01:24:56
君にはまだ早すぎる。できる開発者だけの楽しみだしw
664:デフォルトの名無しさん
08/05/20 23:38:25
負け戦は確定でしょ
ただでさえ中心人物がどんどんやめていってるのに
665:デフォルトの名無しさん
08/05/21 15:16:25
SUNは、開発者ごとJavaFXをGoogleにあげればいいと思うよ。
開発者のやる気も出るし、Android標準搭載になっていい事だらけだと思うぞ。
まあもらってくれないだろうが・・・
666:デフォルトの名無しさん
08/05/21 23:37:07
JavaFXって結局ブラウザの中でも実行できるんだっけ?
デモサイトを見てもブラウザ内で実行できるのが無いんだけど単にJavaFXのブラウザプラグインがまだ無いだけ?
667:デフォルトの名無しさん
08/05/21 23:43:12
全部javaで書いてあります。> JavaFX
668:デフォルトの名無しさん
08/05/21 23:47:01
えーとね、スクリプトをサポートする順番は、sunの発表では、rubyとかはあるけどFXは全く予定にないってところだった。
まだ熟してないんだよ。そーあせるなってw
669:デフォルトの名無しさん
08/05/22 00:18:10
熟すときは来るのか?w
670:デフォルトの名無しさん
08/05/22 07:10:25
SM次第でSMのシルバーなんとkがが市場を開拓すればおのずと、
知らないだろうけど、フォトランのsun風味とかもあるし、
671:デフォルトの名無しさん
08/05/23 11:09:35
JDK7 build27
URLリンク(download.java.net)
URLリンク(download.java.net)
672:デフォルトの名無しさん
08/05/26 12:02:22
JDK6でせっかく入れたTools APIはjava7のリッチクライアントプロファイルでは外されるんだな。
Tools APIってJDK6で入っただけでまだ標準ライブラリ化してないんだっけ?
673:デフォルトの名無しさん
08/05/26 12:09:04
>>672
リッチクライアントプロファイルからはjavacとか削るつもりなんだろ。
プロファイルによってはAWT/Swingみたいな標準ライブラリも削られる。
だからTools APIが削られる事と標準かどうかは関係ない。
674:デフォルトの名無しさん
08/05/26 13:47:38
プロファイルはJREの話だからjavacがないのは元からだ。
toolsAPIはJREのrt.jarに入ってるから削られる。
675:デフォルトの名無しさん
08/05/26 14:18:04
>>674
このスレの主だから。こいつは、なんつーか傲慢で非常にひねくれた性格なのよw
確かageたりすると、こいつ、すぐ発狂するからww
676:デフォルトの名無しさん
08/05/26 14:20:08
>プロファイルによってはAWT/Swingみたいな標準ライブラリも削られる。
だからTools APIが削られる事と標準かどうかは関係ない。
この「だから」ってのはどうつながっていて、標準ライブラリとTools APIとどういう風に「関係がない」のかちゃんと説明できるの?
偉そうに適当な事ばかり言ってないでさ
677:デフォルトの名無しさん
08/05/26 14:39:12
AWT/Swingが削られるのはヘッドレスプロファイルだろ。サーバーサイド向け。
けどjava2Dの一部ってAWTだよな・・・。
678:デフォルトの名無しさん
08/05/26 14:54:49
headless はマジで助かる。
Ubuntuにheadlessのopenjdkが入って助かった。
でないとサーバ用途なのに、画面周りが必要だったり困りもの。
679:デフォルトの名無しさん
08/05/26 14:59:42
1.4以降なら -Djava.awt.headless=true つけりゃヘッドレスモードになったような。
680:デフォルトの名無しさん
08/05/26 15:00:26
Ubuntuはもうjdk6u10入ってるのか。
新java-pluginって単にJavaFXでブラウザからドッカブルにしたかっただけだよね。
J++が吐いた糞バイトコード食ってブラウザ毎VMおとされる心配がなくなったから良いが。
681:デフォルトの名無しさん
08/05/26 15:09:12
>>679
ん、そうなんだけど、インストール時はdependencyの関係上画面周りの
インストールが必要だったのよ。使わないのに。
682:デフォルトの名無しさん
08/05/27 19:24:21
このスレにもageると発狂する奴がいるのか?
683:デフォルトの名無しさん
08/05/27 20:13:57
研究室も貧乏臭くて真っ暗なんじゃね?図星だろうww
684:デフォルトの名無しさん
08/05/28 19:35:25
研究室にテロでも仕掛けるのか?
自分でまねいた種だし、いっちょやっつけちゃってよww
685:デフォルトの名無しさん
08/06/01 16:29:28
研究室にテコを仕掛けてきますた。
見事に釣り合っております。
686:デフォルトの名無しさん
08/06/06 19:12:40
JDK7 build28
URLリンク(download.java.net)
URLリンク(download.java.net)
687:デフォルトの名無しさん
08/06/07 07:16:41
教えて君ですまない。
build28というのはどのくらいの進捗なの?
クロージャやプロパティは使えるようになってますか?
688:デフォルトの名無しさん
08/06/07 08:00:59
> build28というのはどのくらいの進捗なの?
まだまだ。
> クロージャやプロパティは使えるようになってますか?
なってない。
689:デフォルトの名無しさん
08/06/07 08:02:52
>>687
クロージャ使いたかったら URLリンク(www.javac.info) のプロトタイプ使うのが手っ取り早い。
690:デフォルトの名無しさん
08/06/07 12:06:41
>>688-689
ありがとう。それは残念、待ち遠しいですね。
691:デフォルトの名無しさん
08/06/07 14:56:19
別にイラネ
692:デフォルトの名無しさん
08/06/12 16:02:03
多値関数がホスィ
693:デフォルトの名無しさん
08/06/12 17:43:41
俺も思う
配列で実現する
シンタックスシュガーでいいんだけどな・・・
( String a, String b ) = hoge( c);
が書きたいだけなんだ・・・
Object[] hoge(String c){
}
で定義する、でもいいから・・・
694:デフォルトの名無しさん
08/06/12 18:45:55
バグの温床なので諦めて下さい
695:デフォルトの名無しさん
08/06/12 18:59:38
>>694
どの辺がバグの温床?
696:デフォルトの名無しさん
08/06/12 21:14:57
javascriptでもできるようになったんだよな。
var [a, b] = (function (a, b){returen [a, a + b]})(10, 20);
って・・・。
697:デフォルトの名無しさん
08/06/12 22:44:05
多値とオプション値型は、
ヒープを消費しない形で多用したいので、
組み込みで入れて欲しい。
698:デフォルトの名無しさん
08/06/12 23:54:09
>>697
スタック使うのは、何年か前にBugDatabaseでVMの大幅な変更が必要だから却下って言われてたような。
699:デフォルトの名無しさん
08/06/13 00:54:28
VMって、戻り値に複数スタック渡せないんだっけ?
700:デフォルトの名無しさん
08/06/13 07:13:10
無理
701:デフォルトの名無しさん
08/06/13 10:27:13
多値だけは止めてくれ吐き気がする
あれは本当にたちが悪い
702:デフォルトの名無しさん
08/06/13 10:27:38
VMは戻り値指定にひとつの型しか指定できないし、戻り値を返す命令もireturn lreturn freturnみたいな単一の型指定しかできないので、最低限、戻り値指定と複合return命令を追加する必要がある。
703:デフォルトの名無しさん
08/06/13 10:36:46
invokedynamicでも入るんだから何でも入りそう。
704:デフォルトの名無しさん
08/06/13 11:37:27
invokedynamicと戻り値指定変更の影響範囲の違いもわからないのか。
705:デフォルトの名無しさん
08/06/13 11:51:59
実行時にはa,i,l,f,d,voidしか区別する必要ないんだから、
結構簡単なんじゃないの?
706:デフォルトの名無しさん
08/06/13 12:30:28
じゃあおまえがプロトタイプを作って見せてくれ
707:デフォルトの名無しさん
08/06/13 12:45:29
コンパイラの方も多値は基本的に代入だけだしね。
708:デフォルトの名無しさん
08/06/13 13:06:16
いや、だから、コンパイラが返値をObject[] に変えてくれればいいんですお。
配列の返値はOKですよね?
709:デフォルトの名無しさん
08/06/13 13:12:01
オプション型は、論理型への暗黙の変換か、
match case文がないとダサダサだね。
Javaには入りづらいだろうね。
710:デフォルトの名無しさん
08/06/13 13:30:19
>>705
戻り値の数と組み合わせの管理が必要になるだろ。