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


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

☆★Java質問・相談スレッド175★★



1 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 23:09:24.14 ID:sB1GrBUA.net]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

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

質問時の心得
・コンパイルエラーか実行時エラーか、エラーではないが意図しない動作なのかはっきりしろ。あとエラーメッセージちゃんと読め。
・前提条件としてOS、開発環境、バージョン、使用フレームワーク等を明記。


前スレ
★★Java質問・相談スレッド174★★ [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1435295532/

702 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 17:16:15.62 ID:Oys3mgVD.net]
MyImageLoaderの中のArrayListに入っているMyListenerがImageViewへの参照を持っています。
>>695
リスナとメソッドを分けるというのはどういうふうにすればよいのでしょうか?

703 名前:デフォルトの名無しさん [2016/01/05(火) 17:54:16.31 ID:VgKFWf5a.net]
import java.util.function.IntBinaryOperator;

public class Test76 {
public static int sub(int a, int b) {
return a - b;
}

public static int cal(int x) {
x *= 2;// 6
x += 3;// x=6+3→x=9
return x;
}

public static void main(String[] args) {
// subメソッドの処理ロジックを、変数funcに代入する
// 代入されているのはsubメソッドへの参照
IntBinaryOperator func = Test76::sub;

// 変数funcに格納されている処理ロジックを引数5と3で実行する
int a = func.applyAsInt(5, 3);
System.out.println("5-3は" + a);

IntBinaryOperator func2 = Test76::cal;
int b = func2.applyAsInt(1);
}

}

これ、なんでエラー?

704 名前:デフォルトの名無しさん [2016/01/05(火) 18:24:42.44 ID:VgKFWf5a.net]
エラーにならなくなるにはどうすればいいの?

705 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 18:34:53.74 ID:tTU6gw0u.net]
>>699
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどユートピア!びっくりするほどユートピア!」
とハイトーンで連呼しながらベットを昇り降りする

これを10分程続けると妙な脱力感に襲われ、解脱気分に浸れる

706 名前:デフォルトの名無しさん [2016/01/05(火) 19:00:36.49 ID:rNrMefwE.net]
>>696, 697

実行可能なプログラムって言ってるのに、なんでコンパイルすら通らないプログラム渡してくるんだよ…
main もないし、綴り間違いもあるし

非同期処理とか関係なくて、要するにこういうプログラム書いて、メモリリークしてるーって言ってるんだよね

pastebin.com/QR8XCxmw

707 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 19:32:55.97 ID:C3hlmsJm.net]
>>701
外出先でケータイで書いていたものでして。お手数をお掛けしてすみません。

そうです。タスクにコンポーネントへの強参照が残っているので、ガベージコレクションの対象になりません。
弱参照を使えば解決できるのはわかるのですが、そもそも設計自体に問題があるような気がして質問させて頂きました

708 名前:デフォルトの名無しさん [2016/01/05(火) 20:31:01.45 ID:rNrMefwE.net]
>>702

>>701 のプログラムの問題点は単に強参照を残したまま放置してること
TextField を remove した時に、TextLoaderManager から対応する TextLoader (あなたの言うリスナ) を削除すれば解決する
弱参照使っても解決するけど、WeakReference ってのはコスト高めだからできるならやめたほうが良い

設計がおかしいかどうかはプログラム見てみないとわからない
例えば >>701 をメモリリークなしで実現するだけなら、
わざわざ TextField への参照をもつ TextLoaderManager なんか作らなければいいだけだし
pastebin.com/0agxjUpL

709 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 22:45:19.38 ID:LXERuTXK.net]
>>698,699
IntBinaryOperator#applyAsInt(int,int)
IntUnaryOperator#applyAsInt(int)

710 名前:デフォルトの名無しさん [2016/01/06(水) 01:56:51.70 ID:MDvEEgkc.net]
javax.scriptのクラスってどういうアプリを作るときに使うんですか?



711 名前:デフォルトの名無しさん [2016/01/06(水) 09:23:09.32 ID:VMneMEc+.net]
>>705
ググレカス

712 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 10:01:02.20 ID:IGqZso0+.net]
>>703
専用のクラス等があるのかもと思いましたが、地道に開放処理を書いていくしかなさそうですね

ソースコードを公開できる種類のものではないので、自分で考え直してみたい思います。
ありがとうございました

713 名前:デフォルトの名無しさん [2016/01/06(水) 13:12:54.08 ID:a8PR2+G7.net]
■変数へのメソッド参照の格納
メソッドがstaticの場合
変数名 = クラス名 :: そのクラスの静的メソッド名
メソッドが非staticの場合
変数名 = インスタンス変数名 :: そのインスタンスのメソッド名

メソッドが非staticの場合の例を下さい!

714 名前:デフォルトの名無しさん [2016/01/06(水) 14:02:05.22 ID:Rj8baaAT.net]
最近始めた者なんですがテキストファイルへの入出力?でつまづいています
質問なのですが、コマンドライン引数に入れるテキストファイル名は既に存在している必要がありますか?

715 名前:デフォルトの名無しさん [2016/01/06(水) 14:32:35.35 ID:Rj8baaAT.net]
askclose は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
というエラーはどういう意味ですか?
エディタはCpadで、コンパイラのパスは間違っていないはずなのですが

716 名前:デフォルトの名無しさん [2016/01/06(水) 14:35:21.83 ID:gbLUTWbO.net]
>>709
コマンドライン引数ってのは、単に main メソッドの引数として使われるってだけ
そのファイルが存在してないとエラー/例外が発生するかどうかはどんなプログラム組んでるかで変わってくる

717 名前:デフォルトの名無しさん [2016/01/06(水) 14:42:29.10 ID:gbLUTWbO.net]
>>710
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1169453111
これじゃないの?

718 名前:デフォルトの名無しさん [2016/01/06(水) 14:50:42.76 ID:Rj8baaAT.net]
>>712
使っているのはJcpadですが症状はこの通りです 実行された瞬間に画面が消えるのです

public class test{
public static void main(String[] args){
System.out.println("Hello java");
}
}

例えば上記を実行したときは
Hello java
-askcloseは内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示されます

フォルダ、ファイル名に日本語やスペースは含まれていません
コマンドの切れ目の解釈?はよくわかりませんが...

719 名前:デフォルトの名無しさん [2016/01/06(水) 15:01:54.63 ID:gbLUTWbO.net]
>>713
JCPad ってのダウンロードしてみてやってみたが、そのコードで普通にコンパイル実行できたぞ
というか、Java2 SE とか糞古い言葉書いてあるし、普通に eclipse とか他の IDE 使うか、コマンドラインでやれば?

720 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 15:12:16.78 ID:TV0Wmsb0.net]
>>713
CPad for Java2 SDK 2.31というやつですかね?
ダウンロードして試してみたけど件のエラーはでないですね
実行後に表示されるコンソールのスクリーンショットを見せてもらえれば
ヒントになる情報があるかもしれませんが、エラーを抑制するだけなら、
実行-設定-実行タブ
にある「実行時のウィンドウ制御」を「制御しない」に変更すればいけるかも



721 名前:デフォルトの名無しさん [2016/01/06(水) 15:13:23.94 ID:Rj8baaAT.net]
>>714
実はまだ学生で、学校ではこのエディタを使用しているのでこれを使えるようにしておきたいのです..

ここの方が想像しているより遥かに初心者なのでみなさんなら当たり前にこなしてしまうところでつまずいているみたいです...

722 名前:デフォルトの名無しさん [2016/01/06(水) 15:21:25.70 ID:Rj8baaAT.net]
>>715
そうです!
ウィンドウ制御の設定を変更してみたところ、先程のエラー文は消えました
しかし Thread"th"is not found.in Remove.Thread() なるエラーが別のウィンドウで出てきました

723 名前:デフォルトの名無しさん [2016/01/06(水) 15:36:29.89 ID:gbLUTWbO.net]
>>717
そのエラー出たソースコード載せてもらわないと…
エスパーじゃないんだから

724 名前:デフォルトの名無しさん [2016/01/06(水) 15:39:21.63 ID:Rj8baaAT.net]
>>718
public class test{
public static void main(String[] args){
System.out.println("Hello java");
}
}
これです!ソースコードってこういうことですよね?おかしいこと言ってたらごめんなさい

725 名前:デフォルトの名無しさん [2016/01/06(水) 15:44:04.50 ID:gbLUTWbO.net]
>>719
あぁ、すまんソース自体はいじってないのか。

726 名前:デフォルトの名無しさん [2016/01/06(水) 15:45:39.84 ID:gbLUTWbO.net]
>>719
とりあえず、コンパイラのパスに設定してる値見せてくれる?

727 名前:デフォルトの名無しさん [2016/01/06(水) 15:53:46.49 ID:Rj8baaAT.net]
>>721
iup.2ch-library.com/i/i1576713-1452063128.png
これであってるでしょうか...画像を上げるのすらはじめてですが

728 名前:デフォルトの名無しさん [2016/01/06(水) 15:59:23.16 ID:gbLUTWbO.net]
>>722
まぁ設定はおかしくはないかな。

クラスファイル(.class)はできてる?
できてるならコマンドラインからそのクラスファイル実行できる?

とりあえず俺は、こんな感じで設定して
i.imgur.com/Dd5sRiR.png
ここで青い三角の実行ボタン押せば
i.imgur.com/DPCBX31.png
普通に実行できたぞ、なんにも設定いじらず
i.imgur.com/oAQENWg.png

729 名前:デフォルトの名無しさん [2016/01/06(水) 16:23:34.15 ID:Rj8baaAT.net]
>>722
クラスファイルはあります!
学校で一番最初に設定したパソコンではその手順でできるんですが、以降自分で設定すると不具合が起きるので
自分が何かを間違っているんだと思うんですがそれがなにかさっぱりわからないんです

あと仰っていることとはまた違うのかもしれませんが、コマンドラインにtest.javaを入れてもう一回Jcpadで開くと普通に実行できました

730 名前:デフォルトの名無しさん [2016/01/06(水) 16:24:00.82 ID:Rj8baaAT.net]
>>723ですね、失礼しました



731 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 16:24:27.37 ID:C6lgir8o.net]
Oracle認定Java bronse の教科書のお勧めは。

732 名前:デフォルトの名無しさん [2016/01/06(水) 16:30:11.87 ID:gbLUTWbO.net]
>>724
> クラスファイルはあります!
それを java コマンドでコマンドラインから実行できるか聞いてるんやで…

> コマンドラインにtest.javaを入れてもう一回Jcpadで開くと普通に実行できました
コマンドラインに test.java を入れるとか意味わからん。日本語でおk!

733 名前:ピカチュウ [2016/01/06(水) 16:59:23.41 ID:a8PR2+G7.net]
■変数へのメソッド参照の格納
メソッドがstaticの場合
変数名 = クラス名 :: そのクラスの静的メソッド名
メソッドが非staticの場合
変数名 = インスタンス変数名 :: そのインスタンスのメソッド名

メソッドが非staticの場合の例を下さい!

734 名前:デフォルトの名無しさん [2016/01/06(水) 17:13:53.18 ID:gbLUTWbO.net]
>>728
ここでも読んどけ
www.ne.jp/asahi/hishidama/home/tech/java/methodreference.html

735 名前:ピカチュウ [2016/01/06(水) 17:36:02.19 ID:a8PR2+G7.net]
IntConsumerの例を下さい><

736 名前:デフォルトの名無しさん [2016/01/06(水) 17:47:19.61 ID:gbLUTWbO.net]
>>730
IntConsumer consumer = System.out::println;

consumer.accept(1);

737 名前:ピカチュウ [2016/01/06(水) 20:04:10.24 ID:a8PR2+G7.net]
IntConsumerの例ありがとうございます><

import java.util.function.*;

public class Test86 {
public static void main(String[] args) {
(IntBinaryOperator rrr. int a, int b) -> {
int result = rrr.applyAsInt(a, b) +
rrr.applyAsInt(a, b);
return result;
}
}
}
何故エラー?

738 名前:ピカチュウ [2016/01/06(水) 20:13:21.49 ID:a8PR2+G7.net]
IntConsumer consumer = System.out::println;
consumer.accept(1);
実行できました
それ以外のIntConsumerの例はありますか?

739 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 20:40:42.24 ID:2BSVuGqW.net]
Selenium と JUnitを使ったテストについて質問があります。

Selenium Builderでテストを自動生成すると、自動的にControllerまでテストされちゃうと思います。
Selenium Builderで自動生成したテストは別に、Controllerのテストを書く必要ってあるのでしょうか?

740 名前:デフォルトの名無しさん [2016/01/06(水) 22:24:04.89 ID:vYy0/gWp.net]
これからプログラムを学びたいのですが、
JAVAとC#は、どちらがお仕事あるでしょうか?

C#のが高性能な気がしますが、
JAVAには歴史があるし、
迷っています。



741 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:26:19.44 ID:1KAr6o/M.net]
>>735
ま板で聞けw

742 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:27:25.56 ID:TV0Wmsb0.net]
そんなの聞く前に両方身につけようとする人しか採りたくない

743 名前:735 [2016/01/06(水) 22:40:43.27 ID:vYy0/gWp.net]
両方覚えろなんて簡単に言いますが
オワコン言語を選んだら
時間の無駄だと思ったので
どちらがオワコン、もしくはオワコンに近いのか
知りたかったんです

744 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:42:16.38 ID:60Ylwggr.net]
>>735
どちらでもいい
先人の教えによれば、この業界で生きていくときは、
少なくとも一年に一つは新しい言語を身につけるのが望ましいという
どちらを選んだとしても、そのうちもう片方も学ぶ機会に恵まれるし、自分もそうしたくなっている

745 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:42:38.09 ID:TV0Wmsb0.net]
君の相手は時間の無駄だね

746 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/01/06(水) 22:45:59.64 ID:r1bIfkHM.net]
フツーに99BASIC → DarkBASIC → AGK / VC++コースがいいよw

747 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:48:56.70 ID:1KAr6o/M.net]
>>739
一年で身に付けられる言語w

748 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/01/06(水) 22:55:04.07 ID:r1bIfkHM.net]
99BASICなら1年でも習得可能かもなw

749 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 22:56:40.40 ID:60Ylwggr.net]
>>742
Lispでもない限り、一年もあれば無理なく確実に身に付くだろ?
名著「達人プログラマー」でも、「プログラマが知るべき97のこと」でも言及されているぞ

750 名前:デフォルトの名無しさん mailto:sage [2016/01/06(水) 23:49:44.97 ID:sDGBVbLY.net]
言語によるな。C++とか何が出来たら身に付いた事になるのか



751 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/01/07(木) 01:37:14.73 ID:lPhmWPE4.net]
始めは99BASICがいいだろうなw
数式表現の正確さが重要w

あとでVC++をやろうとすると、この部分で分かってない人は挫折するw

752 名前:デフォルトの名無しさん [2016/01/07(木) 04:57:35.43 ID:CtrMVhu3.net]
 
homepage2.nifty.com/e-d-a/scurl/Avatar_Concept_Art_by_Craig_Shoji_01a-gyu
homepage2.nifty.com/e-d-a/scurl/Avatar.html
homepage2.nifty.com/e-d-a/scurl/SWfa.html
 
管理会社、仲介業者が苦情に対応せず困っています
これらの人と知人,家族,親類の方はお知らせ下さい。
 
●浪速建設
南野 東条
www.o-naniwa.com/index.html
社長 岡田常路
www.o-naniwa.com/company/
 
●アパマンショップ八尾支店
加茂正樹 (舟橋大介)
www.apaman-yao.jp/store/
社長 大村浩次
www.data-max.co.jp/2010/10/01/post_11983.html
 
●クリスタル通り122号室の入居者
 
hnps203@gmail.com
 
homepage2.nifty.com/e-d-a/scurl/ia-1-3.html
homepage2.nifty.com/e-d-a/scurl/ia-2-1.html
homepage2.nifty.com/e-d-a/scurl/ia-3-1.html

753 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/01/07(木) 05:17:13.65 ID:lPhmWPE4.net]
はい次w

754 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 10:57:05.05 ID:9ao0fLoC.net]
>>745
たぶん、端末に「hello」と表示するw

755 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:32:14.93 ID:k23ZNEKE.net]
>>749
デスマ支援要員としては充分なスキルだw

756 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:27:24.80 ID:56i6wc0F.net]
オラクル認定資格教科書 Javaプログラマ Bronze SE 7/8
山本道子 著 翔泳社
果てしなく難しい。やっと最後のほうまで読んだが
参照型の型変換、わからん。

757 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 15:40:11.51 ID:Bkb68/nr.net]
何がわからんのかがわからないけど、コンパイル時になにがチェックされるか、
実行時になにが呼ばれるかを理解できればJavaのコアはそれほど難解ではないような

758 名前:ピカチュウ [2016/01/07(木) 15:53:57.21 ID:Q2NJYYXK.net]
ラムダ式って、重要ですか?

759 名前:ピカチュウ [2016/01/07(木) 15:55:40.69 ID:Q2NJYYXK.net]
pastebin.com/0vKXM8Cm

これが何故エラーになるのか、教えて下さい><

760 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 17:48:55.52 ID:56i6wc0F.net]
Java認定資格取得のためのプログラミング入門
米山 学/著  インプレスジャパン
これも有罪



761 名前:デフォルトの名無しさん [2016/01/08(金) 00:52:28.81 ID:M3ksrM60.net]
>>754
(Cat85 c) -> {
return c.getHp();
}

なんで main文にラムダ式単体で書いてるの?
むしろこっちがあなたが何をしたいのか聞きたい

ラムダ式を使っていい場所ってのがある
関数型インターフェースの変数に代入するところか、
メソッド呼び出しで関数型インターフェースを引数にとっている部分でしか使えない
それ以外のところに書いても意味をなさない

762 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:13:23.80 ID:g6ZAB0sp.net]
>>754
インターフェースにフィールドを定義すると、static final宣言が暗黙的に行われる。
定数に代入しようとしてるからエラーになる。

763 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 01:43:22.11 ID:MhlEWiKz.net]
関数に、コールバック関数を渡しておいて、
後でその関数(処理)を呼んでもらう
f(callback)

そのコールバック関数に、
クロージャ・無名関数・ラムダ式などが使われる

関数の引数に、関数(処理)を渡したり、
関数の戻り値として、関数(処理)を返すような関数を、高階関数という

764 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 12:34:57.99 ID:jv1GyZfR.net]
GridBagLayoutとJTableの列を合わせたいんですが、何か方法はないでしょうか?

765 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 13:05:17.69 ID:M3ksrM60.net]
>>759
>GridBagLayoutとJTableの列を合わせたい
その説明だけじゃよくわからん
列幅を合わせた状態で、上にJTable、下にGridBagLayoutみたいに配置し ってこと?

766 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 13:11:47.31 ID:jv1GyZfR.net]
>>760
比率を設定すれば出来るみたいですけど、GridBagLayoutにコンポーネントをaddしても、コンポーネント.get.getWidth()は0が返ってきます(実際はもっと大きい)
もし、GridBagLayoutの各列の幅を取得する方法があれば教えてほしいです。

767 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:06:43.58 ID:jv1GyZfR.net]
>>761
追記です
setVisible(true)をしたらサイズが0ではなくなるんですが、しないとサイズが0のままみたいです

768 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:10:43.27 ID:M3ksrM60.net]
>>761
> get.getWidth()は0が返ってきます

それ単に setVisitble(true) の前に呼んでるから 0 が返ってるだけだろ
試してみたが普通に width の値ちゃんと返ってくるぞ

769 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:11:35.93 ID:M3ksrM60.net]
>>762
それが普通。setVisible(true) で、レイアウトされるんだから、それ以前に width の値を得るのは不可能

770 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:11:56.63 ID:jv1GyZfR.net]
>>763
出来れば表示する前に呼びたいのですが、方法はないですかね?



771 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:19:10.96 ID:M3ksrM60.net]
>>765
pack() 呼べば visible の前に width の値が 0 でなくなる

772 名前:ピカチュウ [2016/01/08(金) 14:29:46.45 ID:fOxsJkEj.net]
import java.util.function.*;

public class Test85 {
public static void main(String[] args) {
IntToDoubleFunction func = (int x) -> {
return x * x * 3.14;
};
System.out.println(func.applyAsDouble(30));
}
}
ラムダ式、mainメソッドで書いても動くよ
答え教えて><Cat86インスタンス化でラムダ式使うのがわからない

773 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:35:46.80 ID:M3ksrM60.net]
>>767
main メソッドで書いてもそりゃ動くよ
誰が main メソッドで書いたら動かないって言ったよ
言葉の意味がわからないならひとつひとつ調べながら勉強しなよ

774 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 14:40:34.68 ID:M3ksrM60.net]
IntToDoubleFunction func = (int x) -> {
return x * x * 3.14;
};

ならコンパイル通る

(int x) -> {
return x * x * 3.14;
};

ならエラー出る

ピカチュウのやってるのは後者

後、>>757 もちゃんと読んで直さないとエラー出る

っていうか、あなた基本が滅茶苦茶すぎるから一回ちゃんと本読みなよ

775 名前:ピカチュウ [2016/01/08(金) 15:05:06.93 ID:fOxsJkEj.net]
答えは?

776 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 15:34:17.53 ID:M3ksrM60.net]
答えってなんの?
何がやりたいの?

>>754 のなんでエラーになるのかの答えはもう書いてあるんだが
まぁこの短いプログラムにエラーになる箇所いくつあるんだって話だけど

777 名前:デフォルトの名無しさん [2016/01/08(金) 16:55:31.43 ID:2Ps7IMZ7.net]
ここで良いのかわかりませんが質問させてください。
現在遺伝子の研究に用いるため、Genome Enviroment Browserというソフトを動かそうとしています。

しかしこれが、ターミナルから直接動かすもののようなのですが、
メイン・クラスGEB_Setup.GEB_Setup_GUIが見つからなかったかロードできませんでした
と表示され動きません。

以下のコマンドを打てば動くと記載されているのですが、、、
java -Xms512m -Xmx1024m -cp GEB_Setup.jar GEB_Setup.GEB_Setup_GUI

ソフトは以下のサイトからダウンロードできます
web.bioinformatics.ic.ac.uk/geb/

現在の状態は
OS X 10.11.2
java version "1.8.0_65"
です。

不慣れで申し訳ありません。

よろしくお願いします。

778 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 18:11:28.54 ID:usbIc1x+.net]
>>772
スレ違いだと思うけど、適切なスレを知らないですね
Macだと
ダウンロードしたGEB.tar.gzに対して
tar zxvf GEB.tar.gz
cd GEB
java -Xms512m -Xmx1024m -cp GEB_Setup.jar GEB_Setup.GEB_Setup_GUI
としてますかね?

これでエラーが出なくなったとしても、サーバー接続エラーで使えなかったです
ドキュメントを斜め読みしたところmysqlを設定する必要があるようでしたが、
geb.iniにある外部サーバでもいいのかはわかりません
mysqlの設定についてはinstallation guideとuser guideにありました
geb.iniに書いてある外部サーバが機能しているのかは未確認

779 名前:デフォルトの名無しさん [2016/01/08(金) 18:27:21.08 ID:2Ps7IMZ7.net]
>>773
レスありがとうございます。スレ汚しすみません。

無知なもので、アドバイスがあまりわかりません。
現在までは、gz、tarを解凍してGEBの状態にしてコマンドを打っていました。
今試しに、gzの状態で上記のコマンドを打ったところ

エラー: メイン・クラスGEB_Setup.GEB_Setup_GUIが見つからなかったかロードできませんでした

と出てしまいました。
また、GEB.tar.gzに対してとありますがファイルをしているする方法がわかっていないので、そもそもそれができているのかわかりません。

サーバーの件に関してですが、こちらはmysqlを設定し現在接続状態にあります。
しかし、これも必至にやったらたまたま出来た感じなので、うまく機能するかわかりませんが、、、

780 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 18:37:12.99 ID:usbIc1x+.net]
>>774
わかりにくかったですね
1. GEB.tar.gzを解凍するコマンドが
tar zxvf GEB.tar.gz
これでGEBというディレクトリが作られてそこにファイルが一式入っていました
GEB.jar GEB_Setup.jar GEB_user_guide.pdf geb.ini
GEB_Setup.bat GEB_installation_guide.pdf Perl gpl.txt

2. 1できたGEBディレクトリに移動するのが
cd GEB
これにより、以降はGEBディレクトリ内での操作になります

3. で最後が件のコマンドです
コマンド自体に間違いはないようなので、GEBディレクトリに移動してないか、
解凍に失敗しているのかと

データベースは用意してあるとのことですが、そのための設定もGEBディレクトリの
geb.iniに書かないといけません
内容はguideを見てください



781 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 18:50:58.35 ID:U482vqP3.net]
>>754
解決してるのか分からんのでとりあえず。
インターフェイスに定義できるメソッドは、
public static 型 Method(){実装}
public default 型 Method(){実装}
public abstract 型 Method(); //実装無し、このインターフェイスをimplementsするクラスで実装する。
の3パターン。Cat85ではabstractなのに実装してるのが問題。

次に、Supplier<Cat85> supplier = () -> new Cat85();
は、インターフェイスのインスタンスは作れないのでNG。
インターフェイスを実装したクラスならnew出来る。

で、出来るだけ原型を生かすとこんな感じになる。
pastebin.com/hL3ubDGN

782 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 19:17:05.42 ID:U482vqP3.net]
>>767
インターフェイスは、定義→実装→使用の3段階で考えると分かりやすい。
関数型インターフェイスも同じ。
IntToDoubleFunctionは、java.util.function.*で定義されているので、実装と使用の段階を踏めば、(クラス外みたいな場所違いしなければ)使える。
で、実装する際は、
関数型 自作するメソッド名 = 引数 -> 処理(戻り値を得る場合はreturnする)
に合わせる。例は、
IntToDoubleFunction func = x -> {return x * x * 3.14;};
で、最後に、実装した機能をインターフェイスで定義されたメソッドで呼び出して使う。
double answer = func.applyAsDouble(123);

783 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 19:39:45.51 ID:U482vqP3.net]
で、関数型インターフェイスを自分で定義→実装→使用までの例
pastebin.com/AryW6b68

784 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 20:10:14.44 ID:U482vqP3.net]
あと、一応戻り値を返さない例
pastebin.com/a6i3TEX5

785 名前:デフォルトの名無しさん [2016/01/09(土) 01:58:16.13 ID:fjhrcvxE.net]
数値配列の最大値を求めたいのですがうまくいきません。どこが悪いのでしょうか?
public class Saidaichi {

public static void main(String[] args) {
//実行結果 = 10
System.out.println(new Saidaichi().getMax(new int[]{1,2,3,4,11,6,7,8,9,10}));
}

public int getMax(int[] args){
int max = 0;
for(int i = 0; i < args.length-1; i++){
if(args[i] < args[i+1]){
max = args[i+1];
}
}
return max;
}

}

786 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:17:21.48 ID:fjhrcvxE.net]
すみません事故解決しました

787 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:30:45.62 ID:4yezZpvR.net]
最大値と比較しないでmaxを更新してるからだね

788 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 02:33:53.75 ID:fjhrcvxE.net]
>>782
はい、11と6の比較後に、6と7比較して7が大きいので7をmaxに入れてました。
初めて変数トレース機能使って感動しました。
これで解決しました。
public int getMax(int[] argv){
int max = argv[0];
for(int i = 0; i < argv.length-1;i++){
if(max < argv[i+1]){
max = argv[i+1];
}
}
return max;
}

789 名前:デフォルトの名無しさん [2016/01/09(土) 02:54:41.30 ID:HKMzFh3j.net]
すいません
「モック」はわかるのですが「リッチモック」とはなんでしょうか?

790 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 07:43:18.85 ID:iLoewcLB.net]
>>783
素直に
for(int i = 1; i < argv.length; i++){
if(max < argv[i]){
max = argv[i];
}
}
って書いた方がちょっとわかりやすいかも



791 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 10:48:42.01 ID:Ty2NT5AN.net]
>>785 おれもそうする

792 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 10:56:27.70 ID:/BDqjX/g.net]
俺ならこうだな
int max = Integer.MIN_VALUE;
for (int x : argv) max = Math.max(max, x);
ちなみにJava8なら関数作るまでもなくこれだけ
IntStream.of(argv).max()

793 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 11:14:45.66 ID:xA6BhSVF.net]
できるだけ短くした方がかっこいいと思っていた時期が僕にもありました
int a, b, c;

794 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 11:28:26.70 ID:1PcbP7SA.net]
>>787は短くしてるというよりは抽象度を上げてる
codegolfみたいなのとは区別すべき

795 名前:デフォルトの名無しさん [2016/01/09(土) 11:38:37.06 ID:hdqMNonU.net]
argvの長さが0のとき挙動が違うね

796 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 12:10:15.89 ID:LnCwRjB0.net]
>>787
> max = Integer.MIN_VALUE;
> for (int x : argv) max = Math.max(max, x);

その方式の嫌なところは毎回代入とメソッド呼び出しがあること。

797 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 12:26:32.74 ID:eXTQYEr7.net]
そんなこと言ってたらStream使ってられないな…

798 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 12:44:11.94 ID:4yezZpvR.net]
>>785
まあ、それは元の間違ったコードがmaxと比較しないで
次の数字と比較していたから、変なループになっていた
からなわけで

799 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 15:13:05.72 ID:/zf3lzOM.net]
>>774-775
>エラー: メイン・クラスGEB_Setup.GEB_Setup_GUIが、
見つからなかったかロードできませんでした

たぶん、GEB_Setup.jar にパスが通っていないのだろう

カレントディレクトリに、jarファイルを置いた場合も、
パスに通す必要があるのかね?

800 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 15:21:10.62 ID:4yezZpvR.net]
>>794
-cp GEB_Setup.jar
と指定してあるのに?



801 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 16:19:55.14 ID:B4VTiUSo.net]
確かデフォルトでカレントディレクトリはクラスパスに含まれなかった気がする

802 名前:デフォルトの名無しさん mailto:sage [2016/01/09(土) 16:25:18.29 ID:8wtPQFlf.net]
初心者が嵌まる罠

クラスパスの設定
https://docs.oracle.com/javase/jp/1.5.0/tooldocs/windows/classpath.html






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

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

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