[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 15:14 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド101【大歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド100【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1175317038

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

次スレは>>980あたりで。

411 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 11:39:27 ]
>>405
ttp://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html#glasspane

412 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 16:58:23 ]
>>371
レスありがとうございます。
うまくいきましたが、一つ疑問が起きました。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
の直後で改行しようとした所HIERARCHY_REQUEST_ERRが出ました。
調べた所このノードは子ノードにテキストノードを持てないということがわかりました。

ということはつまり、XMLでは一般的に改行しないんでしょうか?
テキストエディタで一見したときにわかりやすいと思のですが。

413 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:05:37 ]
>>409
怖ぇー

414 名前:デフォルトの名無しさん [2007/05/11(金) 21:51:41 ]
すいません!java初心者です!テキスト見てもどう手をつけていいか
わかりません。どなたか詳しい方ご教授願います。

とりあえず、2,10,16進数だけ勉強しました^^;)
本日から入社しましたのですが、なかなか教えてもらう機会がなかった
ので・・。やはり皆さんは23時帰りですか?
素人で申し訳ないです。

415 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 21:54:55 ]
何か作ってみれば、何が必要なのかが分かってくるはず。

416 名前:デフォルトの名無しさん [2007/05/11(金) 22:00:57 ]
>>415 何を作るんですか?? 
それがプログラムが作れない未経験の状態なんで、基本的なことが
わからないんですよ。お奨めのサイトや本てありますか?
図々しくてごめんなさい。


417 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:01:21 ]
>>414
会社の人に聞いた方が早いよ。

418 名前:デフォルトの名無しさん [2007/05/11(金) 22:04:33 ]
cygwinで実行して出た結果をコピペしたいのですが、
どうすればいいでしょうか?

419 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:06:46 ]
>>418
ここ、Javaスレだから。



420 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:11:44 ]
javaで書いたプログラムということでだめですか

421 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:13:16 ]
自己解決しましたスマソ

422 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:22:44 ]
これが噂のDQNか…

423 名前:デフォルトの名無しさん [2007/05/11(金) 22:27:01 ]
進数はJavaに限った事じゃないから。
まだココで聞くには早いと思うぞ

424 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:43:18 ]
>>414
23時帰りではありません。

425 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 22:52:48 ]
>>416
何でもいいじゃん。
簡単なゲームでもいいし、何か計算させてもいいし。

426 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:11:48 ]
>>418
stdout(場合によってはstderrも)をファイルに送ればいいだけじゃないの?

427 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 23:28:32 ]
scriptコマンドとか
cygwinにあったっけ

428 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 01:53:20 ]
>>412
ルート要素外にはテキストノードは置けないですね。

試してないけど、
faq.javaranch.com/view?HowToPrettyPrintXmlWithJava
このへんを参考すると、自動で改行など挿入できるんじゃないでしょー
か。


429 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 03:21:01 ]
>>412
> テキストエディタで一見したときにわかりやすいと思のですが。
XMLはプログラムで扱いやすいようにしたもので、
人間が直接見たり編集したりするためのものじゃない。
人間が扱うならテキストエディタでなくXMLエディタなんかを使った方がいい。



430 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 05:01:09 ]
というか根本的にDOMは総称符号化における
文書インスタンスを動的に変更するものであって
テキストデータをフォーマットするものではない。

まあ、元々はNetscapeのdynamic web architectureであるLiveDocumentの後継技術だからHTML用だが。

>>429の言う通り
意味が分からんなら諦めろ。

431 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 05:07:45 ]
ミスった。

>>429の言う通り総称符号化とはコンピュータ内での文章を保守・管理・閲覧を容易にするための研究分野だ。

人間が見づらいなんて論外、端から眼中にない。お門違い。
フューマンライクにフォーマットしたいならそういう
フォーマッタライブラリがあるからそれ使え。それか自分で書け。

432 名前:412 mailto:sage [2007/05/12(土) 16:35:13 ]
直接いじらないので改行しないんですか。
それならバイナリデータの方が良いと思いますが、
これは以前のなごりなんですかね。

皆さんレスありがとうございました。

433 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:42:50 ]
普通に出来ることがなんでこうなるのかわからんなw

434 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 16:44:12 ]
バイナリデータというのが人間が簡単に読めないデータという意味だとすれば
なぜそっちの方がいいと思ったん?

435 名前:412 mailto:sage [2007/05/12(土) 16:51:20 ]
>>434
処理速度が上がると思ったからです。

436 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:18:13 ]
スレ違いなので、XMLの特徴、長所と短所を理解してから出なおしてください

437 名前:412 mailto:sage [2007/05/12(土) 17:54:57 ]
わかりました
スレ汚しスマソ

438 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:36:43 ]
BigDecimalでの加減算の方法を教えてください。
なんで普通に足せないの??

439 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:37:58 ]
>>438
どうやって足しているかを書く



440 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:40:23 ]
BigDecimal a = new BigDecimal("10000000000000000");
BigDecimal b = new BigDecimal("10000000000000000");
BigDecimal c = a+b;

こうやろうとしてエラーになっている。
演算子オーバロードができたらねぇ。

441 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:59:46 ]
BigDecimal c = a.add(b);

442 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 19:10:57 ]
演算子なんて只の飾りですよ
エロいひとにはそれが分からんのですよ

443 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:55:11 ]
IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
ぜんぶ<T>で呼び出してるから一致しないわけないと思うんだけど、コンパイルが出来ません。

444 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 20:56:49 ]
> IterableのGenerics型とIteratorのGenerics型が一致しないのはどう解決しますか?
どゆ事?

445 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:04:23 ]
TとTが一致しませんといってエラーが出てるのです。

446 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:18:34 ]
JSliderはスライダ部分をクリックしただけだとイベントを発生しないけど、発生するようには出来ないでしょうか?
ChangeEventでスライダを動かした時だけしか、イベントを発生できないようです。 スライダをクリックして
「握った」状態を感知したいのですが・・・

もしくは、そうできるようなものはないでしょうか? swingでの使用を考えています。

447 名前:443 mailto:sage [2007/05/12(土) 21:25:35 ]
IterableのT型変数をIteratorのnextで戻していたのが原因でした。
型推論できそうな気もするけど、Iterator内に移したらコンパイルが通りました。

448 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 21:41:05 ]
JAVAってインラインアセンブラできないの?

449 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:01:19 ]
そんなんでRun Anywhereできると思ってんのかコラァ!



450 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:07:38 ]
JVM 用アセンブラを書くライブラリはあるだろ。
BCEL とか使えばいい。

451 名前:443 mailto:sage [2007/05/12(土) 22:38:09 ]
自己解決の方法が間違ってたので、フィードバック。

Iterableの型をIteratorに引き継ぐ場合は
private class MyIterator implements Iterator<T>とするだけ。
MyIterator<T>としてしまうと型を上書きするみたい。

こんな間違い私だけかも知れないけど。

452 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 22:50:52 ]
> private class MyIterator implements Iterator<T>とするだけ。
これ、外側に MyIterable<T> の宣言とかが無いと、
何を書いてるか分からんぞ。

453 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:01:45 ]
インラインアセンブラも、ヴァーチョウマスゥィーンヌのほうで吸収して呉れりゃいいのに。

454 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:31:11 ]
javaの考える力を身につけるにはどう学習すればいいですか?
何かお勧めのテキスト教えてください、情報技術者試験対策の勉強だと知らないようなことを
考えさせられて自分の力の無さを感じてしまうお

455 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:52:35 ]
www.amazon.co.jp/products/dp/4756100503

456 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 23:58:43 ]
>>455
おK、これで考える力をつけようと思います。
しかし値段すごいですね(((( ;゚Д゚))) とりあえず大きな本屋に行って立ち読みしますわ

457 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:05:32 ]
高いか???
普段、赤本とか物理学などの本買ってると2万3万当たり前なので安く感じる。

最も高かったのが、医学の術式を記した本で5万。

458 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:11:19 ]
高いよ

459 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:13:45 ]
本に2000円以上出すのは抵抗あるお
資格取得の参考本以外は手をつけた覚えないな



460 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:49:36 ]
>>455
まつもとゆきひろ氏が読んで目から鱗が落ちた本だな。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby%CD%D1%B8%EC%BD%B8#Eiffel

461 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:34:48 ]
同じ場所に end の解説があってワロス

462 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 02:49:37 ]
>単文・複文問題の回避
{ } 強制の Perl では問題が生じない。

>ぶらさがりelse問題の回避
{ } 強制と elsif の導入で解決する問題。

>可読性の向上
趣味の問題なので何ともいえない。

>begin, caseの構文上の問題
これはある程度納得できる。

463 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 05:20:05 ]
>>462
お前は俺だ

464 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:28:31 ]
開始時刻の(時h1、分m1)と終了時刻(時h2,分m2)を読み込み開始から終了までの時間(時h,分m)を求める式が考えつきません。

hd = h2 - h1; md = m2 - m1; 単純に時分をそのまま足す引くしか考えが浮かばないんですが終了時刻の方が小さいとマイナスと出ます。
逆にしても同じで開始終了どちらの大小関係なくマイナスにならないようにするヒントを教えていただけませんか?

465 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:38:20 ]
Calendarつかえばいんでね

466 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:47:49 ]
もし開始時刻より終了時刻のほうが早ければ開始-終了、それ以外なら終了-開始

467 名前:デフォルトの名無しさん [2007/05/13(日) 10:51:09 ]
>>464
絶対値でOK

468 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:37:41 ]
>464
Date start = new Date();
Date end = new Date();
long diff = start.getTime() - end.getTime();
int diffMinitue = diff / (1000 * 60);
int diffHour = diff / (1000 * 60 * 60);

469 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:39:09 ]
>467
絶対値使うなwww
たぶん、12時25分(開始) 13時10分(終了)のような状況と思われ。



470 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:23:54 ]
h=h2-h1;
m=m2-m1;
if(m<0) {
h=h-1;
m=m+60;
}
引き算のときに下の桁で足りなかったら上の桁から借りてくるって算数で習っただろ?

471 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:26:18 ]
>>470
それでやると日付またいだりしたときに面倒くさそうだね。

472 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:34:24 ]
もともと問題がhとmしかないからね。
日付をまたいだり月をまたいだり年をまたいだりするなら、
さらに上の桁から借りればいい。
月が変わる時の処理がちょっと面倒だけど。
まあ、そこまでの問題なら日時関連の標準APIを使うのが楽だろうが。

473 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 12:39:27 ]
DateとCalendarを使えって話題じゃないのかね?
どういうながれで問題が出されたのか解らんけど。

474 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 13:41:33 ]
超初心者です。
今アプリゲットの開発講座を見ながらJ2MEのtoolkitでイメージの描写を
やってるのですが、解説にのってあるpngではなく自分で用意したpngを
使用すると、パッケージのところで
「アプリケーション記述子のJARサイズが実際のJARファイルサイズと一致しません」
と出るんですが。どこをいぢればいいか教えてください。

475 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 13:44:19 ]
黄色いアプリゲットだぜ!

476 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:38:09 ]
javaのsliderで動画のシークに使える派生モノはないですか? JSliderだとスライダーを握っただけ
だとイベントを発生しないので・・・ スライダーを動かして初めてイベントを発生する・・・

477 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 14:53:29 ]
動画のシークに使うのならサムを握っただけでイベントを発生させる必要はないのでは?
値が変わった時にシークさせればいいと思うのだが。
MouseEventを捕まえればいちおうイベントは発生してくれる。
サムでない部分をクリックしてもMouseEventが発生するけど、
そのときはChangeEventも発生するはずなので区別を付けられないわけではない。
もしくは実装の詳細に入ってしまうのであまり良い方法ではないが、
MouseEventの発生位置がサムの領域かどうかで判断するか。

478 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:06:25 ]
お願いします
>>474


479 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:17:58 ]
>>474
プロパティ



480 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:21:29 ]
>>477
そのサムを握った時に動画やアニメーションを停止させたいので、イベントが発生してくれるとうれしいのです。
もう少し、調べてみます。

481 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 15:37:26 ]
>>479
プロパティって言うのは、jadにjarファイルの容量を入れるってことですよね?
今はjavaファイルからclassファイルにコンパイルする段階でできないのですが。


482 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:35:21 ]
携帯はスレ違い
MIDPスレ行け

483 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:36:14 ]
>>482
了解です。。

484 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 17:38:14 ]
プログラミング経験もほぼ無いに等しいのですが
お勧めの参考書でもあれば教えてください。

485 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:18:16 ]
>484
pc11.2ch.net/test/read.cgi/tech/1164359039/l50

俺の考えは、入門書はイラネ。
やさしいとか猫が解るとか6日で学ぶとか色々あるが、金の無駄。
いわゆる入門書のレベルならばWebで探せば幾らでもあるからタダ。

Webで軽く触ったなら、少し難しい本を買って辞書として使用すべし。
あわせて、独習Java等の演習問題を血を吐くまで打ち込むべき。

486 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:09:46 ]
JRE6をインストールしたら今まで使っていたJRE5は削除してもいいんでしょうか?

487 名前:デフォルトの名無しさん [2007/05/13(日) 21:45:27 ]
>>486
JRE5を使うか使わないかは君次第

488 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 22:05:30 ]
>>455はJavaじゃないだろ

489 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:17:26 ]
JavaじゃないけどJavaで考える力はつくよ



490 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:30:41 ]
いや、特につかないだろ
Java問題集とかパズルとか読んだ方がずっといい

491 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 23:40:01 ]
いや、考える力はつくだろ

492 名前:デフォルトの名無しさん [2007/05/14(月) 01:23:17 ]
ファイルがまだ残っているディレクトリツリーをまとめて削除したいのですが
どうすればいいでしょうか?

493 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:28:24 ]
残っているファイルを全部消してから親ディレクトリに移り子ディレクトリを消す
という操作を再帰的に行う
下手すると全部消えるから再帰の止めどころを間違えないように

494 名前:492 [2007/05/14(月) 01:30:17 ]
>>493
その処理をしてくれるメソッドはないでしょうか?

495 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 01:37:41 ]
標準のAPIにはたぶんない
apache commonsのorg.apache.commons.io.FileUtilsには
deleteDirectoryやcleanDirectoryがある

496 名前:492 [2007/05/14(月) 01:45:04 ]
>>495
ありがとうございます。

497 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:38:52 ]

質問質問!

JavaのJFrameにFlashPlayerを乗せるにはどうすればいいですか!
教えてちょんまげ!!
 
ちなみにFlash側はActionScriot3.0で書くつもりです
 

498 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 03:58:47 ]
>>497
切腹

499 名前:デフォルトの名無しさん [2007/05/14(月) 04:03:15 ]
for(;;){} の初期化の部分で複数の型を初期化するにはどうすればいいですか?
int と String の異なる型をfor内部で宣言させたいのですが…

エラーになりますが、イメージとしてはこんな感じです。
for(int i=0, String s=""; i<foo.length; i++){}



500 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 04:17:23 ]
できないのでforの前でやってください

501 名前:デフォルトの名無しさん mailto:499 [2007/05/14(月) 04:41:08 ]
>>500
了解です。ありがとうございます。

502 名前:デフォルトの名無しさん [2007/05/14(月) 09:12:10 ]
質問させていただきます。
Excelファイルを参照して、指定したセルに書かれいている文字列を、
配列に格納するという方法はあるのでしょうか?

503 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 09:20:52 ]
あります

504 名前:デフォルトの名無しさん [2007/05/14(月) 09:24:40 ]
>>503
調べてみてはいるのですが検討が付きません。
教えていただけませんか?

505 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 09:27:34 ]
>>504
POI使え
ttp://jakarta.apache.org/poi/

506 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 09:29:40 ]
ありがとうございます。


507 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:06:17 ]
JAVAを独学ではじめようと思っているのですが。
参考書籍、それとも初心者用の解説サイトで学ぶのがよいのでしょうか?
またそれについてお勧めの書籍等ありましたら、教えていただけると有難いです。

508 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:07:39 ]
>>507
やさしいJavaプログラミング

509 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:26:26 ]
>>508
あんなもん教えるな。



510 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 21:50:42 ]
否定するなら対案示すとかどこが悪いか示すとか、そういうのすべきじゃね?

511 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:04:40 ]
房乙






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef