Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.3
http://mevius.2ch.net/test/read.cgi/tech/1491306071/
探検
Java入門・初心者質問スレ Part.4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/06/30(金) 22:14:16.54ID:W0OUnv8/
2017/07/07(金) 18:45:46.52ID:JqkT4Ef+
Listインターフェースのadd系ってなんでadd(int, E)だけ戻り値がvoidなんだろ
ArrayListを拡張して要素数の上限値付きリストを作って
上限越えてaddしようとした時falseを返すようにしようとしたのに
ひとつだけ挙動が違ってしまう……
ArrayListを拡張して要素数の上限値付きリストを作って
上限越えてaddしようとした時falseを返すようにしようとしたのに
ひとつだけ挙動が違ってしまう……
2017/07/07(金) 18:57:45.82ID:ez3vLCaW
2017/07/07(金) 21:15:32.25ID:VZWsMyOg
インタフェースにコンストラクタを定義できる?
2017/07/07(金) 22:23:16.92ID:EogG9omB
できるわけねえだろアホ
52デフォルトの名無しさん
2017/07/08(土) 00:07:49.76ID:UEoozzz2 そういや Java 8 で interface に default メソッド作れるようになったのに default コンストラクタが作れないのは何故か?
2017/07/08(土) 00:59:40.73ID:toOimg9I
class Cat implements Animal{
static string jpname = "ねこ";
int size;
private int sex;
:
:
}
class Dog implements Animal{…}
こんな感じのクラスがあったとして
Animal anml = new Cat();
anml = new Dog();
としたらメモリリークは発生するのでしょうか?
以前staticを使うとメモリリークが発生するという記事を見た気がするので気になりました
static string jpname = "ねこ";
int size;
private int sex;
:
:
}
class Dog implements Animal{…}
こんな感じのクラスがあったとして
Animal anml = new Cat();
anml = new Dog();
としたらメモリリークは発生するのでしょうか?
以前staticを使うとメモリリークが発生するという記事を見た気がするので気になりました
54デフォルトの名無しさん
2017/07/08(土) 01:23:56.74ID:UEoozzz22017/07/08(土) 01:31:23.02ID:toOimg9I
>>54
sizeやsexに格納した値が参照が外れたにも関わらずメモリに残り続けるという意味だと思います
あまり覚えてないのですが、staticのデメリットとしてメモリリークが発生すると言ってる記事でした
sizeやsexに格納した値が参照が外れたにも関わらずメモリに残り続けるという意味だと思います
あまり覚えてないのですが、staticのデメリットとしてメモリリークが発生すると言ってる記事でした
56デフォルトの名無しさん
2017/07/08(土) 02:34:59.50ID:eRvDPK8O57デフォルトの名無しさん
2017/07/08(土) 03:28:53.05ID:UEoozzz2 >>55
どこからも参照されなくなればgcの対象になってその内解放される筈だが?
その例の場合そもそも size や sex はプリミティブ型だから Cat や Dog クラスのインスタンスが
どこからも参照されなくなれば同時に開放される。jpname は static だから開放はされないが
new してインスタンス作っても増えることはない(staticだから)。
しかし Java では C/C++ でいうようなメモリリークは起きようがないぞ。プログラマがうっかり
いつまでもクラスのインスタンスを参照し続けるように書いてしまった場合だけそうなる。
だからだいたいはプログラムがおかしいだけ(盲点はあるけどな)。それとライブラリの内部の
書き方が悪くてプログラマが意識せずして参照を残存させてしまうことはありうる。
・書き方が悪くて残存させてしまうような例(しかしJavaのことをよく知っていれば防げそうなバグ)
http://networkprogramming.blog18.fc2.com/blog-entry%2d74.html
・ライブラリの問題で残存させてしまう例(但しこれはJ2SE 5.0で解消)
http://www.aerith.net/java/thread-memory-leak-j.html
どこからも参照されなくなればgcの対象になってその内解放される筈だが?
その例の場合そもそも size や sex はプリミティブ型だから Cat や Dog クラスのインスタンスが
どこからも参照されなくなれば同時に開放される。jpname は static だから開放はされないが
new してインスタンス作っても増えることはない(staticだから)。
しかし Java では C/C++ でいうようなメモリリークは起きようがないぞ。プログラマがうっかり
いつまでもクラスのインスタンスを参照し続けるように書いてしまった場合だけそうなる。
だからだいたいはプログラムがおかしいだけ(盲点はあるけどな)。それとライブラリの内部の
書き方が悪くてプログラマが意識せずして参照を残存させてしまうことはありうる。
・書き方が悪くて残存させてしまうような例(しかしJavaのことをよく知っていれば防げそうなバグ)
http://networkprogramming.blog18.fc2.com/blog-entry%2d74.html
・ライブラリの問題で残存させてしまう例(但しこれはJ2SE 5.0で解消)
http://www.aerith.net/java/thread-memory-leak-j.html
2017/07/08(土) 20:18:41.38ID:fIuXTSpk
JavaScript のメモリリークでは、
クロージャ内の変数とか、
タイマーを解放しなかったとか、
製品版で、console.log を使っているとか、
イベントハンドラーを付けた要素の、先祖の要素が削除された際、
その子孫のイベントハンドラーが削除されないとか
クロージャ内の変数とか、
タイマーを解放しなかったとか、
製品版で、console.log を使っているとか、
イベントハンドラーを付けた要素の、先祖の要素が削除された際、
その子孫のイベントハンドラーが削除されないとか
2017/07/09(日) 10:33:32.67ID:pYRJnPGA
NetBeansでSwing JFrameを追加すると以下のコードがmain()に挿入されるのですが
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
メインスレッドの方でこのインスタンスを参照したいときにはどの様に書くべきなのでしょうか?
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
メインスレッドの方でこのインスタンスを参照したいときにはどの様に書くべきなのでしょうか?
2017/07/10(月) 13:32:21.57ID:FVtmmblZ
2017/07/11(火) 01:34:44.48ID:JGGcE/vH
人気なくてもjava FXを使い続けるぜ!
2017/07/11(火) 22:24:20.31ID:3LOhaMbu
>>60
アドバイスありがとう、やってみます。
アドバイスありがとう、やってみます。
2017/07/12(水) 04:15:20.28ID:bAuhyREb
ぬるぽ
2017/07/12(水) 05:55:34.48ID:Y4kofqZr
がちょーん
2017/07/13(木) 20:55:51.43ID:5vi+11fj
参照型とオブジェクト型の違いがよく分かりません
同じものだと思っていたので混乱しています
Super sp = new Sub();
とした場合、左辺が参照型で右辺がオブジェクト型でしょうか?
オブジェクト型も参照型ですよね
同じものだと思っていたので混乱しています
Super sp = new Sub();
とした場合、左辺が参照型で右辺がオブジェクト型でしょうか?
オブジェクト型も参照型ですよね
2017/07/13(木) 21:02:07.12ID:KJRBO+E3
参照型は変数の種類、intみたいなデータがそのまま入ってる変数(プリミティブ)と比較してって感じ
オブジェクト型は参照型の変数に実際に入ってる物
こんな感じかな
オブジェクト型は参照型の変数に実際に入ってる物
こんな感じかな
67デフォルトの名無しさん
2017/07/13(木) 21:36:04.40ID:Wc3T27x1 The Java Language Specification
http://docs.oracle.com/javase/specs/jls/se7/html/index.html
| 参照型は、クラス型、インタフェース型、型変数、配列型の4種類です。
| オブジェクトは、クラスインスタンスまたは配列です。
| オブジェクトクラスは、すべてのクラスのスーパークラスです。
言語仕様にはオブジェクト型という用語が出てこないので
オブジェクト型は文脈によるんじゃないかな
オブジェクト型は
・参照型のことかもしれない
・Objectクラスのことかもしれない
・クラス型と配列型のことかもしれない
いずれにしても参照型の部分集合
AがBの部分集合であるとき
AはBと表現するならば
オブジェクト型は参照型
はい論破
http://docs.oracle.com/javase/specs/jls/se7/html/index.html
| 参照型は、クラス型、インタフェース型、型変数、配列型の4種類です。
| オブジェクトは、クラスインスタンスまたは配列です。
| オブジェクトクラスは、すべてのクラスのスーパークラスです。
言語仕様にはオブジェクト型という用語が出てこないので
オブジェクト型は文脈によるんじゃないかな
オブジェクト型は
・参照型のことかもしれない
・Objectクラスのことかもしれない
・クラス型と配列型のことかもしれない
いずれにしても参照型の部分集合
AがBの部分集合であるとき
AはBと表現するならば
オブジェクト型は参照型
はい論破
2017/07/13(木) 21:49:25.20ID:yYoNXUK4
論破って言いながら丁寧に説明してあげてるのかわいい
69デフォルトの名無しさん
2017/07/13(木) 23:16:20.85ID:vy/8QKML てか、そもそも議論していない。
2017/07/14(金) 00:32:36.19ID:jwaA4OPc
型には、primitive と、参照型(オブジェクト)の2つがある
primitive には、参照は無く、値しか存在しない。
代入・コピーでも、値そのものが、代入・コピーされる。
参照を考えなくてよいから、わかりやすい
一方、オブジェクトの代入・コピーでは、参照だけが代入・コピーされる。
Shallow Copy
新しいオブジェクトを作っていないから、1つのオブジェクトしか存在せず、
2つの参照が、同一オブジェクトを指すから、ややこしい
新しいオブジェクトを作りながら、代入・コピーする事を、Deep Copy と言う。
Deep Copy では、オブジェクト内に、オブジェクトを含む場合、
ドンドン、中まで再帰的に、Deep Copy をしていく
最終的に、primitive に突き当たると、参照ではないので、値が代入・コピーされる。
Deep Copy の最終地点が、primitive
primitive には、参照は無く、値しか存在しない。
代入・コピーでも、値そのものが、代入・コピーされる。
参照を考えなくてよいから、わかりやすい
一方、オブジェクトの代入・コピーでは、参照だけが代入・コピーされる。
Shallow Copy
新しいオブジェクトを作っていないから、1つのオブジェクトしか存在せず、
2つの参照が、同一オブジェクトを指すから、ややこしい
新しいオブジェクトを作りながら、代入・コピーする事を、Deep Copy と言う。
Deep Copy では、オブジェクト内に、オブジェクトを含む場合、
ドンドン、中まで再帰的に、Deep Copy をしていく
最終的に、primitive に突き当たると、参照ではないので、値が代入・コピーされる。
Deep Copy の最終地点が、primitive
2017/07/15(土) 01:50:54.44ID:Pwuq6t85
ループ処理でもなんでもないところで、Listの0番目を取得して処理するのって、あまりよくないですよね?
人のコードでよく見るので気になってます
人のコードでよく見るので気になってます
2017/07/15(土) 01:53:24.65ID:g8mCRq5Q
>>71
何を気にしてるのかがよくわからんがListの0番目のデータが必要であればアクセスするし問題はない
何を気にしてるのかがよくわからんがListの0番目のデータが必要であればアクセスするし問題はない
73デフォルトの名無しさん
2017/07/15(土) 04:12:48.28ID:ejj256V/ >>71
何がよくないの?どうしてあなたがそれをよくないと思うようになったのかが謎だよ。なんで?
何がよくないの?どうしてあなたがそれをよくないと思うようになったのかが謎だよ。なんで?
2017/07/15(土) 09:12:58.58ID:Pwuq6t85
すみません。言葉足らずでした。
気にしていたのはマジックナンバーの使用です。
1. Listそのものを作成する段階で、その事前に取得していた0番目の要素は別の情報で保持しておく
2. 判断が必要な段階で、その保持した情報のみを参照して処理を行う
こうすると、あらかじめ保持しておく分の処理は増えますが、0というマジックナンバーを使うことがなくなります。
気にしていたのはマジックナンバーの使用です。
1. Listそのものを作成する段階で、その事前に取得していた0番目の要素は別の情報で保持しておく
2. 判断が必要な段階で、その保持した情報のみを参照して処理を行う
こうすると、あらかじめ保持しておく分の処理は増えますが、0というマジックナンバーを使うことがなくなります。
2017/07/15(土) 09:44:34.17ID:3ihmavXl
2017/07/15(土) 10:28:01.22ID:Pwuq6t85
>>75
マジックナンバーを使うと、理由に関係無く上司が顔を真っ赤にして怒るので忌避しています。
自案は、要素内の情報で適宜判断するのではなく、予め情報を専用の領域に確保することでパラメータの抽象化をしたかったのです。
どちらの形でも動作は変わらないので、正直どっちでもいいのかなとは思いますが、保守性を考えると0番目取得はそうしている理由が見えづらいのでナシなのかなと考えていました。
マジックナンバーを使うと、理由に関係無く上司が顔を真っ赤にして怒るので忌避しています。
自案は、要素内の情報で適宜判断するのではなく、予め情報を専用の領域に確保することでパラメータの抽象化をしたかったのです。
どちらの形でも動作は変わらないので、正直どっちでもいいのかなとは思いますが、保守性を考えると0番目取得はそうしている理由が見えづらいのでナシなのかなと考えていました。
2017/07/15(土) 11:01:02.78ID:258vuKWQ
>>76
ライブラリとか人のコードが返すリストの先頭要素が欲しいときはどうすんの?
ライブラリとか人のコードが返すリストの先頭要素が欲しいときはどうすんの?
78デフォルトの名無しさん
2017/07/15(土) 11:07:20.84ID:zmwkueqb たとえばListの0番目に名前が入っていて1番目に住所が入っています
みたいな仕様だとインデックス直書きでアクセスするのはよろしくないかもね
最初の要素を取得するってだけなら0で良いと思う
最初の要素を取得するためのインタフェースとしては
・Stream.findFirst()
・Queue.element()
があるのでケースバイケースで
みたいな仕様だとインデックス直書きでアクセスするのはよろしくないかもね
最初の要素を取得するってだけなら0で良いと思う
最初の要素を取得するためのインタフェースとしては
・Stream.findFirst()
・Queue.element()
があるのでケースバイケースで
2017/07/15(土) 11:18:17.37ID:vvIOQCOR
まあデータ構造決まってるなら構造体みたいなクラスを定義するのが一番分かりやすくはあると思うけどね
80デフォルトの名無しさん
2017/07/15(土) 12:35:01.54ID:ejj256V/ hash突っ込んどけば名前で扱えるからましになるのでは?
名前変わったら終わりだけどな。
名前変わったら終わりだけどな。
81デフォルトの名無しさん
2017/07/15(土) 12:36:01.21ID:ejj256V/ 「に」が抜けた。「hashに」だ。
2017/07/15(土) 15:53:59.30ID:aAFD2FSQ
すいません
スッキリわかるJAVA入門でいきなりつまづきました
system.out.println(““)この中に文字を入れて文章を表示させたんですが
「次は二桁を書き足して表示させよう」となってるんですが、一桁目のsystem.out.println(““)をコピーして
改行後下に貼り付けてコンパイルしてもエラーになってしまいます
やり方が違うんでしょうがどうしたらいいかわかりません、すいません、教えてください。
スッキリわかるJAVA入門でいきなりつまづきました
system.out.println(““)この中に文字を入れて文章を表示させたんですが
「次は二桁を書き足して表示させよう」となってるんですが、一桁目のsystem.out.println(““)をコピーして
改行後下に貼り付けてコンパイルしてもエラーになってしまいます
やり方が違うんでしょうがどうしたらいいかわかりません、すいません、教えてください。
2017/07/15(土) 15:57:38.78ID:TEqu9WXk
>>82
セミコロン忘れかな
セミコロン忘れかな
2017/07/15(土) 15:58:22.33ID:qtlS5nEU
2017/07/15(土) 16:03:19.76ID:aAFD2FSQ
はい、セミコロンもコピーしました
2017/07/15(土) 16:06:48.65ID:TEqu9WXk
>>85
んじゃコードはってねー
んじゃコードはってねー
2017/07/15(土) 16:11:20.64ID:aAFD2FSQ
すいません、こんな状態です
http://i.imgur.com/3Sut7Ay.jpg
http://i.imgur.com/3Sut7Ay.jpg
2017/07/15(土) 16:16:04.41ID:qtlS5nEU
>>87
エラー文の\12288を16進に直すと3000、これはUnicodeで全角スペースを表す
どこかに全角スペースが混ざってるから取り除くとおk
俺もやったなーこれw
解決に1時間くらいかかった
エラー文の\12288を16進に直すと3000、これはUnicodeで全角スペースを表す
どこかに全角スペースが混ざってるから取り除くとおk
俺もやったなーこれw
解決に1時間くらいかかった
2017/07/15(土) 16:16:39.15ID:qtlS5nEU
どこか→4行目のどこか、ね
2017/07/15(土) 16:17:21.84ID:7MVLQNtn
2017/07/15(土) 16:17:48.54ID:aAFD2FSQ
2017/07/15(土) 16:19:10.83ID:aAFD2FSQ
2017/07/15(土) 16:21:09.13ID:qtlS5nEU
エラーの内容がそのまま書いてあるだけだよ、慣れればすぐに読めるようになる
2017/07/15(土) 16:23:13.13ID:aAFD2FSQ
>>93
ありがとうございます
ありがとうございます
2017/07/15(土) 16:47:37.67ID:ISc0zg3F
入門書を一通りやり終えた後の次はどんなことに手を出せばいいのかわからない
今はとりあえずAPI仕様を読んだりオブジェクト指向関連の書籍でお茶を濁している最中
ステップアップのフローチャートが頭に浮かばない
デザインパターンやフレームワークもやりたいけど、多分今の実力じゃ手に余るし
今はとりあえずAPI仕様を読んだりオブジェクト指向関連の書籍でお茶を濁している最中
ステップアップのフローチャートが頭に浮かばない
デザインパターンやフレームワークもやりたいけど、多分今の実力じゃ手に余るし
96デフォルトの名無しさん
2017/07/15(土) 17:10:30.36ID:rsSZ04ms2017/07/15(土) 17:22:44.63ID:T1g1+yar
まぁみんながみんな作りたいものがあるわけでもないよね
特に初心者なんて何が出来るかもよくわからんわけだし
特に初心者なんて何が出来るかもよくわからんわけだし
2017/07/15(土) 17:48:43.67ID:qtlS5nEU
何かが作りたくて始めたわけじゃないのか…
俺は最初から作りたいものありきだったからよくわからん
俺は最初から作りたいものありきだったからよくわからん
2017/07/15(土) 17:54:10.13ID:ISc0zg3F
>>96
当初はAndroidアプリで音楽プレーヤーを製作したかった
でもアプリ開発入門書を読んでもコードを叩いてもちんぷんかんぷんだったからjava自体を学習し始めた
現状、デスクトップアプリとして着手しようと目標変更
そこでオブジェクト指向の理解深化やjavafxに触れたり、
OSSのソースコードを見てみたりするも絶賛五里霧中で
プログラミングに体系化された学習方法や方針があると思い込んでいる節が頭の中にあった
それがそもそもの間違いなのか
当初はAndroidアプリで音楽プレーヤーを製作したかった
でもアプリ開発入門書を読んでもコードを叩いてもちんぷんかんぷんだったからjava自体を学習し始めた
現状、デスクトップアプリとして着手しようと目標変更
そこでオブジェクト指向の理解深化やjavafxに触れたり、
OSSのソースコードを見てみたりするも絶賛五里霧中で
プログラミングに体系化された学習方法や方針があると思い込んでいる節が頭の中にあった
それがそもそもの間違いなのか
100デフォルトの名無しさん
2017/07/15(土) 17:57:38.55ID:ejj256V/ 何作ったらいいかわからない?
それでは俺のためにエロゲでも作ってくれたまえ。
それでは俺のためにエロゲでも作ってくれたまえ。
101デフォルトの名無しさん
2017/07/15(土) 18:02:19.45ID:qtlS5nEU >>99
体系化されたものなんてほとんどないけどアルゴリズムの知識やらプログラムの組み立て方はどこに行っても役に立つから学んでおくといいかな
Aizu Online Judgeの簡単な問題でも解いてみたらどうだろう、人のコード見れるから参考にもなるし
体系化されたものなんてほとんどないけどアルゴリズムの知識やらプログラムの組み立て方はどこに行っても役に立つから学んでおくといいかな
Aizu Online Judgeの簡単な問題でも解いてみたらどうだろう、人のコード見れるから参考にもなるし
102デフォルトの名無しさん
2017/07/15(土) 18:41:44.49ID:ISc0zg3F >>101
OnlineJudge初めて知った、やってみる
更なる問題としては頭の中にべき論が多数生まれたこと
java8だから新しく導入されたラムダ式で書くべき、デザインパターンに則るべきとか
他には、まずコンソールアプリをそれなりに作れるようになるべき等…
入門書に出てきた単語や技術・テクニックを習得しないと、
まともにプログラミングできない強迫観念にも似た考えを抱いた
だから作ることより知ることの方に比重が置かれて自己目的化しつつある本末転倒状態
OnlineJudge初めて知った、やってみる
更なる問題としては頭の中にべき論が多数生まれたこと
java8だから新しく導入されたラムダ式で書くべき、デザインパターンに則るべきとか
他には、まずコンソールアプリをそれなりに作れるようになるべき等…
入門書に出てきた単語や技術・テクニックを習得しないと、
まともにプログラミングできない強迫観念にも似た考えを抱いた
だから作ることより知ることの方に比重が置かれて自己目的化しつつある本末転倒状態
103デフォルトの名無しさん
2017/07/15(土) 18:55:04.65ID:qtlS5nEU 知ることはもちろんいいことだが今は考えてる暇があったら手を動かせ
クソコードを量産して初めてわかる新機能のありがたみというのもある
クソコードを量産して初めてわかる新機能のありがたみというのもある
104デフォルトの名無しさん
2017/07/15(土) 19:36:31.82ID:YzsKBmTR やました俺より年下だわ
105デフォルトの名無しさん
2017/07/15(土) 20:17:30.85ID:7MVLQNtn おっさん!
106デフォルトの名無しさん
2017/07/15(土) 23:17:45.35ID:5uf8kOgL >>102
>java8だから新しく導入されたラムダ式で書くべき
Kotlin
javaとpythonってどっちが初学に向いてる?
https://mevius.2ch.net/test/read.cgi/tech/1496856778/41-42
ここに、読むべき本が書いてある
>java8だから新しく導入されたラムダ式で書くべき
Kotlin
javaとpythonってどっちが初学に向いてる?
https://mevius.2ch.net/test/read.cgi/tech/1496856778/41-42
ここに、読むべき本が書いてある
107デフォルトの名無しさん
2017/07/15(土) 23:22:38.27ID:g8mCRq5Q >>106
しつこい、死ね
しつこい、死ね
108デフォルトの名無しさん
2017/07/15(土) 23:28:48.42ID:q4YYoqHS109デフォルトの名無しさん
2017/07/16(日) 02:57:48.81ID:1fICcUqx >>102
知識不足ばかりが気になるなら知識の補充だけやってればいいと思う
結局さ、なにかを作りたい人は作りたいモチベを抑えられない人なんだよ
そうじゃない人がそうなろうとしても、人種が違うんだからうまくいかないよ
知識不足ばかりが気になるなら知識の補充だけやってればいいと思う
結局さ、なにかを作りたい人は作りたいモチベを抑えられない人なんだよ
そうじゃない人がそうなろうとしても、人種が違うんだからうまくいかないよ
110デフォルトの名無しさん
2017/07/17(月) 09:09:36.85ID:Ze9nWRlN 質問なのですが4GBのメモリのノートPCだと本当にAndroidシミュレータ動かないのでしょうか?
もしそうだとしたら悲しい気持ちに打ちひしがれそうなのですが
もしそうだとしたら悲しい気持ちに打ちひしがれそうなのですが
111デフォルトの名無しさん
2017/07/17(月) 11:28:53.73ID:BiCnURwh 悲しみに打ちひしがれなさい
112デフォルトの名無しさん
2017/07/17(月) 11:55:15.98ID:HvQCc1dg113デフォルトの名無しさん
2017/07/17(月) 11:58:39.74ID:dYQc5jFE (´・ω・`)クラス.メソッド().メソッド()
この書き方わからなかったの
最初のメソッドでクラスが返ってきて、そのクラスのメソッドをつかうときにこういう書き方するんだって
しらんかったー
ようやく読み終えたスッキリわかるJava入門には説明してなかったの
こういうメソッドふたつが並んでる書き方とかみんなは特別な説明なくても見ただけでわかるの?
この辺でプログラミングの適正とかでてくるんやろか?
それで調べてたら
クラス.メソッド().メソッド().メソッド().メソッド()
とか書くメソッドチェーンっていうのもあるらしい
これってリターンで他のクラス呼び出したらどんなものでもメソッドチェーンで書けるの?
この書き方わからなかったの
最初のメソッドでクラスが返ってきて、そのクラスのメソッドをつかうときにこういう書き方するんだって
しらんかったー
ようやく読み終えたスッキリわかるJava入門には説明してなかったの
こういうメソッドふたつが並んでる書き方とかみんなは特別な説明なくても見ただけでわかるの?
この辺でプログラミングの適正とかでてくるんやろか?
それで調べてたら
クラス.メソッド().メソッド().メソッド().メソッド()
とか書くメソッドチェーンっていうのもあるらしい
これってリターンで他のクラス呼び出したらどんなものでもメソッドチェーンで書けるの?
114デフォルトの名無しさん
2017/07/17(月) 12:02:33.60ID:VuxDjspY115デフォルトの名無しさん
2017/07/17(月) 12:05:18.93ID:RdQgJoxw 返り値のあるメソッドを書く時、
左側に変数を用意して代入するものだと思っていましたが、
メソッドのみで書いてもエラーにならないのですね。
この場合、返り値はどこに行くのでしょうか。
無かった事にされるのでしょうか。
左側に変数を用意して代入するものだと思っていましたが、
メソッドのみで書いてもエラーにならないのですね。
この場合、返り値はどこに行くのでしょうか。
無かった事にされるのでしょうか。
116デフォルトの名無しさん
2017/07/17(月) 12:14:19.55ID:5WhJSLEy >>115
その通り、無かったことになる
その通り、無かったことになる
117デフォルトの名無しさん
2017/07/17(月) 13:16:31.03ID:Uy8niamL メソッドチェーンは、JavaScript でよくやっている。
jQuery, Underscore とか
戻り値で、this を返すように作る。
そうすれば、同じインスタンスのメソッドを、連続して呼べる
obj = obj.a();
obj = obj.b();
obj = obj.c();
obj.a().b().c();
jQuery, Underscore とか
戻り値で、this を返すように作る。
そうすれば、同じインスタンスのメソッドを、連続して呼べる
obj = obj.a();
obj = obj.b();
obj = obj.c();
obj.a().b().c();
118デフォルトの名無しさん
2017/07/17(月) 15:36:43.88ID:6JtF0HSC >>113
書ける。
書ける。
119デフォルトの名無しさん
2017/07/17(月) 15:49:00.61ID:E22zs9OY120デフォルトの名無しさん
2017/07/17(月) 16:09:04.23ID:6JtF0HSC てか、streamはメソッド数珠繋ぎが当たり前だな。それできないと不便だし。
121デフォルトの名無しさん
2017/07/18(火) 13:02:40.83ID:6DbTRi2A >クラス.メソッド()
厳密に言うと、メソッドチェーンは、クラスではなく、インスタンスメソッド
そのインスタンス(this)を返すから。
bind で、そのインスタンスを束縛しているのと同じ
厳密に言うと、メソッドチェーンは、クラスではなく、インスタンスメソッド
そのインスタンス(this)を返すから。
bind で、そのインスタンスを束縛しているのと同じ
122デフォルトの名無しさん
2017/07/18(火) 13:52:31.69ID:vumXXDez Javascript、ネットワークセキュリティ等の知識がある人。一緒に仕事しませんか?
月50万〜
月50万〜
123デフォルトの名無しさん
2017/07/18(火) 14:06:14.40ID:9Co9m1r8 やだ
124デフォルトの名無しさん
2017/07/18(火) 14:22:42.32ID:9B3oYp9l http://i.imgur.com/JG7Cdq1.png
これってだいたいあってる?
これってだいたいあってる?
125デフォルトの名無しさん
2017/07/18(火) 15:19:49.39ID:9Co9m1r8 >>124
太さの違いはなんだ?横軸が時間で右が現在?
太さの違いはなんだ?横軸が時間で右が現在?
126デフォルトの名無しさん
2017/07/18(火) 16:44:05.28ID:2pQ0zCCv 縦が人気で横が時間って書いてあるやん
>>124にはみんな大好きLISPがないので間違い
>>124にはみんな大好きLISPがないので間違い
127デフォルトの名無しさん
2017/07/18(火) 17:06:37.30ID:PJqj9Jnt Clojureがあるやん
128デフォルトの名無しさん
2017/07/18(火) 17:25:20.72ID:2pQ0zCCv わ、ホンマやん
129デフォルトの名無しさん
2017/07/18(火) 18:44:08.28ID:bmzbSPDE >>126
書いてある?あ、透明部分に黒で書いてあるの?スマホで見てて背景黒になって表示されてわからなかった。
書いてある?あ、透明部分に黒で書いてあるの?スマホで見てて背景黒になって表示されてわからなかった。
130デフォルトの名無しさん
2017/07/18(火) 19:08:59.36ID:KVouUBvY なんだこの意味不明で無茶苦茶なグラフは
131デフォルトの名無しさん
2017/07/18(火) 19:11:19.99ID:KVouUBvY ググったら少しはまともなのあるやん
ttps://furien.jp/columns/197/
ttps://furien.jp/columns/197/
132デフォルトの名無しさん
2017/07/18(火) 19:41:08.33ID:X/hWddMd こんにちは
EclipseでMac用のプログラムを改造途中です
ttps://code.google.com/archive/p/tokyo-jogging/
WIDCOMM6.5.1.4800をインストールしたのですが、デバッグウィンドウによるとwinsockで接続しようとしているようです。
ログ中に BlueCove version 2.1.1-SNAPSHOT on winsock と表示される
wiiremoteJ.jar(ver1.6b)
bluecove2.1.1-snaposhot.jar
Win764bitでバランスWiiボードを接続
USBドングル(BroardcomBCM20702)を使用
Q1..ハードウェアドライバはこれで正しいでしょうか?
インテルUSB3.0ルートハブ
+Broadcom BCM20702 Bluetooth4.0
+Microsoft Bluetooth Enumerator ←これがブロードコムにならない
+BluetoothHIDデバイス ←これもMSのドライバ
+HID準拠ゲームデバイス(WiiMote)
+BluetoothHIDデバイス
+HID準拠ゲームデバイス(バランスWiiボード)
+Bluetooth Remote Control
+Bluetoothオーディオ
MS StackがwiiremoteJで必要なL2CAPプロトコルをサポートしていないので、HIDまで行けない気がします
Q2.BluecoveでWIDCOMMを使用するためには
import com.intel.bluetooth.BlueCoveImpl;
System.setProperty("bluecove.jsr82.psm_minimum_off", "true");
BlueCoveImpl.setConfigProperty("bluecove.stack", "widcomm");
でよろしいでしょうか?
EclipseでMac用のプログラムを改造途中です
ttps://code.google.com/archive/p/tokyo-jogging/
WIDCOMM6.5.1.4800をインストールしたのですが、デバッグウィンドウによるとwinsockで接続しようとしているようです。
ログ中に BlueCove version 2.1.1-SNAPSHOT on winsock と表示される
wiiremoteJ.jar(ver1.6b)
bluecove2.1.1-snaposhot.jar
Win764bitでバランスWiiボードを接続
USBドングル(BroardcomBCM20702)を使用
Q1..ハードウェアドライバはこれで正しいでしょうか?
インテルUSB3.0ルートハブ
+Broadcom BCM20702 Bluetooth4.0
+Microsoft Bluetooth Enumerator ←これがブロードコムにならない
+BluetoothHIDデバイス ←これもMSのドライバ
+HID準拠ゲームデバイス(WiiMote)
+BluetoothHIDデバイス
+HID準拠ゲームデバイス(バランスWiiボード)
+Bluetooth Remote Control
+Bluetoothオーディオ
MS StackがwiiremoteJで必要なL2CAPプロトコルをサポートしていないので、HIDまで行けない気がします
Q2.BluecoveでWIDCOMMを使用するためには
import com.intel.bluetooth.BlueCoveImpl;
System.setProperty("bluecove.jsr82.psm_minimum_off", "true");
BlueCoveImpl.setConfigProperty("bluecove.stack", "widcomm");
でよろしいでしょうか?
133デフォルトの名無しさん
2017/07/21(金) 16:05:04.18ID:9/NTCjMt ここはJava”言語”しか知らない馬鹿しかいないからそんなこと聞いても無駄
134デフォルトの名無しさん
2017/07/21(金) 18:16:57.06ID:UUHPm2az スレチだから誰も答えないんじゃないか?
135132
2017/07/21(金) 19:54:39.68ID:98df5QyM スレチですよねー
でもBTスレはハード板でもオーオタですし、他には
Java質問スレ
ttp://mevius.2ch.net/test/read.cgi/tech/1492780397/
ですかねー
Jettyも聞きたいことがあるんですが・・・
でもBTスレはハード板でもオーオタですし、他には
Java質問スレ
ttp://mevius.2ch.net/test/read.cgi/tech/1492780397/
ですかねー
Jettyも聞きたいことがあるんですが・・・
136デフォルトの名無しさん
2017/07/21(金) 21:55:09.65ID:9/NTCjMt マジレスすると2chじゃ突っ込んだ内容の質問にはまず回答なんかつかない
teratailとかで質問したほうが100倍マシ
teratailとかで質問したほうが100倍マシ
137デフォルトの名無しさん
2017/07/24(月) 22:41:42.40ID:Z9C6ox1d 知恵袋に全く同じことで困ってる人がいたんですが、
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12148864962
java3Dライブラリを使ってコンパイルして出力したjarファイルが開けない
→環境変数の設定が〜
みたいな回答で、たしかに書いてあるとおりにしたら開けたんですが、
これって誰かに渡すときにはその人にもjava3Dをインストールしてもらわないといけないってことですよね?
jarに含めたりとかってできないんですか?
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12148864962
java3Dライブラリを使ってコンパイルして出力したjarファイルが開けない
→環境変数の設定が〜
みたいな回答で、たしかに書いてあるとおりにしたら開けたんですが、
これって誰かに渡すときにはその人にもjava3Dをインストールしてもらわないといけないってことですよね?
jarに含めたりとかってできないんですか?
138デフォルトの名無しさん
2017/07/25(火) 20:57:58.57ID:pa2wyDo4 >>137
jarにjarを含めるにはクラスローダを実装する必要があるみたい
そこでEclipseですよ
Eclipseならマウスかちかちでjarを含んだjarをエクスポートできる
Eclipse製のクラスローダが用意されてる
jarにjarを含めるにはクラスローダを実装する必要があるみたい
そこでEclipseですよ
Eclipseならマウスかちかちでjarを含んだjarをエクスポートできる
Eclipse製のクラスローダが用意されてる
139デフォルトの名無しさん
2017/07/25(火) 21:13:10.74ID:Y+NO7fSD あれ?でもJava3Dってネイティブ含んでなかったっけ?
140138
2017/07/25(火) 21:31:26.48ID:TSeeDTaM javaを触れ始めて3年位ですが簡単な事すら理解できてないへっぽこが失礼します。
とある人間が作ったA.jarの中に約40ほどファイルがあります。
そこにバグがあるのですが、jarを作った人間が多忙の為 私がそのファイルの中の調査をすることになりました。
(修正した箇所がわかりやすいよう、本来の使い方とは異なりますが継承+オーバーライドを使用し修正しています。)
メイン:main newでclassA(stringA,stringB)を呼び出し
hoge_project.dir1.classA newでclassBを呼び出し
hoge_project.dir2.classB newでclassCを呼び出し
hoge_project.dir3.classC extends でclassDを継承
hoge_project.dir3.classD こいつにエラーがありそう
エラーがありそうなメソッドを保有しているクラス"classD"を継承したクラスclassD_fixをhoge_project.dir3 に作成し、そのメソッドをオーバーライドしたクラスを入れ込んだjarファイルを作成することに成功(jar tfで確認)しました。
ですが、肝心のクラスAの継承に失敗していて 呼び出し元のメソッドが修正できず困っています。
エラーの内容はこんな感じでした。
classA_fix.java:7: エラー: クラス classAのコンストラクタ classAは指定された型に適用できません。
classA_fix.javaのソース
import hoge_project.dir1.classA;
public class classA_fix extends classA{//中身なし}
期待値:String,String
検出値:引数がありません。
理由:実引数リストと仮引数リストの長さが異なります。
ググって見たところ、メソッド自体が存在しない、もしくは引数が合わない等メソッドによる不具合が原因だと書かれていたので
念の為class classA_fixにコンストラクタっぽい感じでpublic void classA_fix(String stringA, String stringB){super(stringA,stringB)}等自分なりに色々やってみましたがうまくいかず・・・
クラスclassA_fixはクラスclassAを継承しただけで特にメソッドの上書きも行っていない何もない状態なのにこのようなエラーが出ていたため、わけが分からず困っています。
abstractは使用していません。
作成者とは連絡が取れない状況で、完成予定日もあるのでこちらで出来る限りの理由を探りたいのですが、何か良い方法はないでしょうか。
とある人間が作ったA.jarの中に約40ほどファイルがあります。
そこにバグがあるのですが、jarを作った人間が多忙の為 私がそのファイルの中の調査をすることになりました。
(修正した箇所がわかりやすいよう、本来の使い方とは異なりますが継承+オーバーライドを使用し修正しています。)
メイン:main newでclassA(stringA,stringB)を呼び出し
hoge_project.dir1.classA newでclassBを呼び出し
hoge_project.dir2.classB newでclassCを呼び出し
hoge_project.dir3.classC extends でclassDを継承
hoge_project.dir3.classD こいつにエラーがありそう
エラーがありそうなメソッドを保有しているクラス"classD"を継承したクラスclassD_fixをhoge_project.dir3 に作成し、そのメソッドをオーバーライドしたクラスを入れ込んだjarファイルを作成することに成功(jar tfで確認)しました。
ですが、肝心のクラスAの継承に失敗していて 呼び出し元のメソッドが修正できず困っています。
エラーの内容はこんな感じでした。
classA_fix.java:7: エラー: クラス classAのコンストラクタ classAは指定された型に適用できません。
classA_fix.javaのソース
import hoge_project.dir1.classA;
public class classA_fix extends classA{//中身なし}
期待値:String,String
検出値:引数がありません。
理由:実引数リストと仮引数リストの長さが異なります。
ググって見たところ、メソッド自体が存在しない、もしくは引数が合わない等メソッドによる不具合が原因だと書かれていたので
念の為class classA_fixにコンストラクタっぽい感じでpublic void classA_fix(String stringA, String stringB){super(stringA,stringB)}等自分なりに色々やってみましたがうまくいかず・・・
クラスclassA_fixはクラスclassAを継承しただけで特にメソッドの上書きも行っていない何もない状態なのにこのようなエラーが出ていたため、わけが分からず困っています。
abstractは使用していません。
作成者とは連絡が取れない状況で、完成予定日もあるのでこちらで出来る限りの理由を探りたいのですが、何か良い方法はないでしょうか。
142デフォルトの名無しさん
2017/07/25(火) 21:35:21.91ID:O1f40o7X >>140
classA_fixなの?classD_fixなの?
classA_fixなの?classD_fixなの?
143デフォルトの名無しさん
2017/07/25(火) 21:52:37.10ID:pa2wyDo4 >>140
スーパークラスのコンストラクタの呼び出しに失敗してるわけっしょ
> public void classA_fix(String stringA, String stringB)
これはコンストラクタじゃなくてメソッドっすよね
コンストラクタをきちんと定義すればいけるんじゃないかな
スーパークラスのコンストラクタの呼び出しに失敗してるわけっしょ
> public void classA_fix(String stringA, String stringB)
これはコンストラクタじゃなくてメソッドっすよね
コンストラクタをきちんと定義すればいけるんじゃないかな
144140
2017/07/25(火) 21:53:05.21ID:TSeeDTaM >>142
説明ベタですみません。
現在エラーがでているのはclassA_fixです。
classDにバグがあるのは間違いないのですが、classDを直接書き換えるのが怖いのと、
報告しなくては行けないので、修正した箇所がわかりやすいように classD_fix.classを作成し、修正しようとしています。
classD_fixのjavacには成功(動作は不明)、classD_fix.classの生成に成功しました。
今現在そのclassD_fixを使用して動かせるように各クラスファイルを修正しようとしています。
超へぽっこで デバッグをやるのはこれが初めてでどういった方法でやるべきなのかもわからず、
メモ帳とコマンドプロンプトでやってます・・・OTL
説明ベタですみません。
現在エラーがでているのはclassA_fixです。
classDにバグがあるのは間違いないのですが、classDを直接書き換えるのが怖いのと、
報告しなくては行けないので、修正した箇所がわかりやすいように classD_fix.classを作成し、修正しようとしています。
classD_fixのjavacには成功(動作は不明)、classD_fix.classの生成に成功しました。
今現在そのclassD_fixを使用して動かせるように各クラスファイルを修正しようとしています。
超へぽっこで デバッグをやるのはこれが初めてでどういった方法でやるべきなのかもわからず、
メモ帳とコマンドプロンプトでやってます・・・OTL
145140
2017/07/25(火) 22:01:15.35ID:TSeeDTaM >>143 こんな感じで書いたんですが駄目でした。 私もしかして コンストラクタの書き方間違えて・・・る?OTL
package hoge_project.dir1;
import hoge_project.dir1.classA;
public class classA_fix extends classA {
public classA_fix( String string_a,String string_b){
}
}
package hoge_project.dir1;
import hoge_project.dir1.classA;
public class classA_fix extends classA {
public classA_fix( String string_a,String string_b){
}
}
146デフォルトの名無しさん
2017/07/25(火) 22:13:58.15ID:pa2wyDo4147140
2017/07/25(火) 22:24:17.39ID:TSeeDTaM >>146 その通りにやったらjavac通りました!ありがとうございます!
superせず終わらせるとそこで処理が終わるだけでエラーにはならないのかななんて思ってましたがそんなことないんですね・・・
そして何故かmainスレッドにて java.lang.NoClassDefFoundError・・・OTL寝れなさそうだ
superせず終わらせるとそこで処理が終わるだけでエラーにはならないのかななんて思ってましたがそんなことないんですね・・・
そして何故かmainスレッドにて java.lang.NoClassDefFoundError・・・OTL寝れなさそうだ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- ジャップ「カントの純粋理性批判読むお!!!」⇒全員上巻で挫折 俺恥ずかしいよ…😭 [731544683]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
