Java入門・初心者質問スレ Part.11
レス数が1000を超えています。これ以上書き込みはできません。
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
Java初心者のためのスレッドです。
※前スレ
Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured System.out.printlf(">>1乙"); java12をインストールしてるPCで動かすんですけど
java9でビルドしたモジュールを動かすのと
java12でビルドしたもの動かすのの違いある?
java12でビルドし直すの大変なんですが 830と1830を下記で実行するとどうなりますか?
setscale(-2、0)
setscale(-2、1) BufferedImage bf = null;
try {
bf = ImageIO.read(new File("C:\\Users\\CS\\Desktop\\imgs\\01.jpg"));
} catch (Exception e) {
System.out.println(e);
}
で画像ファイルを読み込もうとしているのですが、
javax.imageio.IIOException: Can't read input file!
Exception in thread "main" java.lang.NullPointerException
at imageProcesser.ImageProcesser.main(ImageProcesser.java:19)
とエラーが出て、ファイルが読み込めません。
画像ファイルはそのディレクトリにあるので、間違いはないと思うのですが、
何が原因なのでしょうか? >>9
ファイルがおかしいんじゃないかな、ペイントで保存し直してみたらどうだろ >>10
ペイントで保存し直しましたが、同じエラーが出ます。 そのファイルは読み込めないというエラーが出ているのだからファイルがおかしいと考えるのが自然
jpgじゃなくてbmpにするとかパス文字列が間違ってる可能性を疑ってcドライブの直下を読み込むとかやってみたら >>12
C:/Users/CS/Desktop/imgs/01.jpg
で試しても同じエラーでした。
>>13
Cドライブの直下に当該ファイルと新規作成したファイルを置き、ファイル存在を確認したところ、存在しない状態であることが分かりました。
Eclipseやコード自体はDドライブで実行しており、対象ファイルはデスクトップに置いている状態でが、パスなどの設定が必要だったのか調べてみます。
>>14
承知致しました。 JavaでGUIアプリを作りたいのですが、JavaFXが今の流行なんでしょうか?
eclipseでJavaFXのプロジェクト作ってみたのですが、動かずでして。
JavaFXは標準のJavaから外れてしまったのが面倒。
swingの方がいいんでしょうか。 JavaでGUIを作らない
というのが今の流行だな どうか教えてください
以下のようにarrayList要素を2つ含んだarrayListがあります。
alist = [["a","b","c"],["d","e","f"]]
["a","b","c"]を取得したい場合は以下です。
alist.get(0);
ではarrayList["d","e","f"]の"d"を取得したい場合はどのように書けばいいのでしょうか?
alist.get(0).get(0)とは書けませんでした。 blist = alist.get(1);
blist.get(0); 仕事でパイソンでスクレイピングしてるんやけどJavaで作ったHPに苦戦してる。何か参考になる本とかHP無いかな?(^_^;) 何に苦戦してて何を知るための本を探してるのか分からんな
○○で作ったHPってのも言語というよりフレームワークの方が重要じゃね
JavaScriptをJavaと言ってる可能性も否定できない スクレイピングで苦戦してるっていうなら、動的コンテンツが取り込めないとかじゃないかと勝手に推測 >>21
.jspのページって事?
ここはJava入門・初心者質問スレなので
Pythonスクレイピングの質問はPythonスレへどうぞ >>24
そうですそうです、セレニウムでとれるけど遅いし(^_^;)
もっとはやくと思って、でもまなんとかなりそう GUIで
--------------------------------------------------------------------
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
--------------------------------------------------------------------
のようなものを作りたいのですが、何かいい既存のクラスなどありますでしょうか?
※ユーザーが「開く」を押下してフォルダを選択したら、そのフォルダパスが表示されたい >>27
そんな古典のようなものをなぜこんなところで聞くのか? SWINGでいいんじゃないの
最近のGUI事情知らんけど >>27
visualエディタでbeansを使いましょう Javaの入門書でこれは止めとけって本があったら教えて下さい >>32
入門なのか実践(応用)なのかどっちかわからん
>>31 レスありがとうございます
今買おうか迷っている本は、「独習Java」と
「Java 入門編 ゼロからはじめるプログラミング」です(ともに翔泳社)
この2冊について読んだことのある方は感想とか頂けるとありがたいです >>35
ひとつだけ言えることは
アプレットが非推奨な今
どっちもGUIにはたどりつかないよ >>36
分かりました
FEへの合格が当面の目標です >>16
俺はProcessingにJavaのライブラリインポートして
ControlP5乗っけてGUIアプリ作ってる JPanelのインスタンスに巣複数個のJButtonを追加しており、各ボタンをプログラム上でクリック処理してみたいのですが、
どのようすればいいのでしょうか? 自決しました。
for (Component c : getContentPane().getComponents()) {
if (c instanceof JButton) {
}
}
で大丈夫かと思います。失礼いたしました。 質問です
// インデントはアンダースコアで表しています
public class MyClass {
__private final int num;
__public MyClass(int num) {
____this.num = num;
__}
__…
}
という文はエラーにならないですか?
変数numは、宣言時ではなく、コンストラクタに渡された瞬間から
定数扱いになるという理解でよろしいですか? blank final ね。大昔の 1.1 だか 1.0 あたりだとエラーになるんだっけか?
宣言された瞬間から(初期化されていない)定数扱い。
コンストラクタ(もしくはインスタンス初期化子)でないと初期化できない。
全てのコンストラクタで初期化されていないとコンパイルエラー。
コンストラクタ(もしくはインスタンス初期化子)以外の場所では初期化済み扱いになる。 newする度に変更される可能性のある変数をどうしてfinalにできようか ああ、static付いてない場合か
すまん忘れてくれ 答えてくれた方、ありがとうございました
コードはFE試験を参照して抜き出しました、難解ですね… >>52
滅相もない…
読んでてよく理解できない箇所があったのでお聞きしただけですよ csvで¥,(カンマをエスケープしている)が含まれるデータを読み込みたいのですが
いつも通りにスプリットしてもエスケープ文字が邪魔します
何か良い方法ありませんか?
一つは¥,を全く別に置き換えてから
再度置き換えるなどを考えてます >>55
それは否定的後読みを使えば良いだろう
split("(?<!\\\\),") アホくさライブラリいくらでもあるだろ、いかにコード書かないかが勝負な 客先(エンドユーザ)がどうしてもExcel使いたい場合などは解るが
システム間のデータやり取りCSVみたいなフォーマット要求してくる
アホなソフト屋どうにかしてほしいわ >>55
\,を別の文字に置き換えるのがよいと思う
\がエスケープ文字に使われてるので
「\ + 任意の文字」に置き換えればいい
任意の文字はカンマ以外で他のエスケープシーケンスと被らなければ何でも良い
\cとかがわかりやすくていんじゃないかな
,でスプリットして要素を復元するときに\cを,に変換する感じ
\ → \\
, → \,
に変換されてるとするなら、こんな感じでreplaceだけで完全に復元できるはず
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ CSV/TSV, JSON, YAML は一般的
これらの構造物に正規表現を使うのは、おかしい。
パーサーを使うべき
各データ(要素)内に、行区切り文字・列区切り文字・クォート文字などの特殊文字がある場合は、
その要素をクォート文字で囲む必要がある >>55
修正しました
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ
\ → \\
, → \,
と変換されてる場合は
\\ → \ + 任意の文字
\, → \ + 任意の文字
の順番でreplaceすればOK >>62
クオートで囲むのはCSVがRFC4180に従ってる場合でしょ
エスケープするのはRFC4180の形式ではないよ
エスケープするならクオートで囲む必要はないよ
RFCのCSVは扱いにくいんだよね
テキストの行数とCSVのレコード数が一致しないしパーサも結構複雑
エスケープ方式の方があきらかにコンピュータで処理しやすい
CSVのRFCは人類の負の遺産だと思う 基本、自作したものは、バグるので使えない
CSV/TSV, JSON, YAML などは一般的だから、
たいていの言語の標準ライブラリにある
車輪の再開発はダメ。
開発・テストコストが掛かって、低品質になるから使えない 例えば、Ruby のCSV で、
各要素内に、行区切り文字(改行)・列区切り文字(カンマ)・クォート文字(ダブルクォーテーション)がある場合。
要素内のクォート文字" は、連続する" で出力される
require 'csv'
input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT
p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
出力
"a""a","b,b",あ
"c
c","d
d" >>65
Javaの標準ライブラリにはないよ
ここはJavaのスレだよ
ドメイン特化な軽量フォーマットを作るのは僕はありだと思うけどなあ
他人が作ったものが高品質とも限らないし標準ライブラリがバグってることもあるよ
ケースバイケースかな >>66
それはRFCに従ってる感じっすね
RFCのCSVはテキストの行数とCSVの行数が一致しないから
grepコマンドでレコードを検索できないしwcコマンドでレコード数を調べることもできない
はなはだ使いにくいと思うんだよね、いわば前例踏襲だけで生き残ってるゴミ仕様だと思うんだよね、SMTPと同じですわ
もうええやろって思う ちなみにJavaの標準ライブラリのString.splitは末尾の空文字列を無視するから
CSVのパースに使うと列の数が変わってしまう
標準ライブラリでもクセがあるから注意
車輪の再開発はケースバイケースだよ
いびつな車輪で走り続けるよりも、よりよい車輪を作って走ったが良いこともある
車輪の再開発だからダメだ、良いのだというものではないという話 >>70
replaceするだけの処理にライブラリ使ったら負けだと思う RFCのCSVを読む場合はライブラリ使ったが良いだろうね
僕はふだんSuper CSVを使ってる
スピード重視ならuniVocityかSimpleFlatMapperかな
Super CSV、Opencsv、Apache Commons CSVは処理が遅い なんの勝ちか負けか知らんけど
CSVなんか扱ってる時点で負けてるんだから実利取っとけよw >>73
お給料はどうやろうと変わらないっしょ
実利なんてないんですよ、好きにしたらええでしょ 僕はCSVのこと好きですけどね
Oracleの100倍好き CSVなど要求してくるところは仕様にエンコーディングすら記載してない
確認するとTextファイルはShift_JISが当たり前と思ってるアホで
フィールド長要件もShift_JIS換算バイト数だったりして糞面倒くさい
俺は大嫌いだ、CSVのコードなど1秒も時間かけたくないね CSV入出力は自作しないでライブラリ使うなあ。
ていうかCSVに限らずライブラリあるならそれ使って入出力をする。
学習や趣味であえて自作する場合は別として。 >>76
多分そういうのってWindowsのExcelで読みたいんだろうね。あれCSVの拡張子にしとくとシフトJISとして読んでくれるので。TXTにしとけばウィザードになって文字コード指定も出来るけどな。 ExcelはBOM付きのUTF-8なら文字化けせずに開けるはず エンドユーザ向けの出力なら許せるが、同業者だったり...
当然そういうアホにはREST API用意しますからなどという代替案は通じるはずもなく 確かに、RFC のCSV は、
grep, wc などで、簡単には使えない
でも一般的だから、色々なアプリで読み込めるし、可搬性も高い MinecraftでModの開発をしていたのですが昨日から突然コンパイルができなくなり,
>Process 'command 'C:\Program Files\Java\jdk1.8.0_251\bin\java.exe'' finished with non-zero exit value 1
というメッセージが表示されます. 調べてみたところ開発環境に問題があるようなんですが具体的に何が原因なのか分かりませんし,何かそういう操作をしたような覚えもありません.
開発環境としては1年前にインストールしたJDK1.8.0_251なんですが,別のバージョンで試した方がいいでしょうか? 原因や対処法わかる方いましたら教えて頂きたいです. 「java.exe javaw.exe」「java.exe javac.exe」で、違いを検索すれば?
>突然コンパイルができなくなり
コンパイルは、java じゃなくて、javac じゃないの? Gradleでビルドから実行までやってるんじゃないかなと思った >>83
レスありがとうございます
MOD_IDをmods.tomlに合わせて変えてみたんですが,Minecraftが起動すると
mods.toml missing metadata for modid ○○
と表示されて先に進めないです…
---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3
Time: 21/09/27 16:34
Description: Mod loading error has occurred
java.lang.Exception: Mod Loading has failed >>79
あー。UTF-8のBOM入りってそこで使えるのか。
あんな無駄なもん何処で使うんだろうと思ったら。 >>81
CSV用のgrepってあったらいいよな。
ライブラリ使えば簡単そうだからお題スレに出しておくかな。 たかがファイル入出力するのにライブラリ使うとかどんだけレベル低いんだよ Java演習問題(継承)について教えて欲しいです。(初心者です)
・スーパークラス
メンバ変数(private int):a,total
aのgetter,aのsetter
・サブクラス
メンバ変数(private int):b,c
b,cのコンストラクタ
メソッド(public):calculate (処理はtotal=b*c)
・実行用クラス
サブクラス test =new サブクラス(10,2)
test.calculate()
このときに、実行すると、
スーパークラスのtotalが参照できないとエラーがでます
解答例としては、サブクラスのcalculateメソッドが、
public void calculate(){
int total =b*c
setTotal(total)
}
となっているのですが、直接スーパークラスのメンバ変数totalに入れずに、
サブクラス内で別領域を作成して、それをsetする理由がよく分からないです... ↑訂正します。スーパークラスのsetter getterはaではなく(誤)、totalのsetter getterです。 >>93
エラーとしては、「不可視です」と出力されるのですが、ググると、priveta をpublicで緩和するか、setterやgetterがあるか確認してなければ作成を検討する、という方法を見つけました
スーパークラスにtotalのsetterやgetterがあるのに何故かなと思って質問させてもらっています getter/setterあるのに代入文使えないのは何故っての質問の意図か?理解するの難解すぎるw
javaには多言語にあるようなプロパティ構文はないgetter/setterといっても単なるメソッド setter/getterを単なるメソッドというと誤解あるか?
フレームワーク使ったりJ2EEな領域になるとルールになる場合もあって説明が難しい
その様式はカルチャー以上、文法未満、どうせショートカット一発自動生成 >>96
色々後出しで申し訳ないです。
そもそも代入出来ないため、一旦別領域を経由して再度変数を入れないといけない、と理解しました。
助かりました、ありがとうございます。 >>97
それは単に冗長なコーディングスタイルってだけだが switch~casaて何のために使うのでそか?
意味が分かりません
if使えばいいじゃないでそか switchの場合ラベルに飛ぶだけ
ifの場合if毎に条件判定がいる 条件簡略化してるように見えてるだけで言ってること同じやん
雰囲気で適当回答するのやめろアホ switchは条件分岐に使う
条件分岐はifでもできる
switchはパターンマッチが強化されたら関数型のような
書き方ができるから伸びしろがあるのはswitch >>104
回数が決まってない(分からない)ループの時に使うんじゃない? if(a=1 && b=1 || c=1)
を
switchでやることは可能ですか? >>107
for (;;) {
}
で代替できるので >>109
主観の問題になるけど、while文の方がスマートな記述になる気がする
それとdo while文を使いたい時はどうするの? >>110
for (int i = 0;;) {
System.out.println(i);
i++;
if (i >= 10) {
break;
}
}
こうですね なんか経験浅い奴ほどwhile使いたがるような気がする
終端が必ずあるループで安易に使うなよ >>114
1/2の確率でループする場合は終端があると思いますか? >>114
よく分からないな
使い分けた方が良いって言ってるだけなんだが
for文縛りとか不便なだけだろ、ぶっちゃけ i >= 10 よりも
10 <= i の方がいい while使うなっていうのは
goto使うなと同じくらい原理主義でニワカっぽい なんつーかこういう言ってることが理解できないバカが安易にwhile使うんだよな
主義とかどうとか以前にwhileっていう選択肢を選んだ時点で無駄に一つの不安要素を抱えるから
一般的な思考してたら終端ないようなやむを得ない場合でしか使わないんだよな
クッソ単純な条件ループなら妥協できないわけでもないがわざわざ使わない
だから経験浅い奴ほどなんの不安も抱かないから安易に使う 可読性とのトレードオフならまだわかるけど経験浅い奴はそういう事なんて当然考えてるわけもなく
動けばいいや的なソースコードを思うがままに書く
素人が業務でよくやる思考停止2大案件
思考停止大量フラグ
思考停止大量ネスト whileを書いてるからダメだ ← これが思考停止でなくて何だってこと ソースコードは好きに書いたらええ ← 経験深い僕の言葉 全然書いてること理解してないよね
小学生レベルの読解力すらないし
浅いっていうか学生だろお前 >>127
while使ったらダメだって君は考えてるってことだよね
完全に理解したよ、君はwhileに不安を感じてるから
whileは書くべきではないって思ってるわけだけよ
君のレベルが低いだけ 学生の僕よりレベル低いプログラマがwhile禁止の自分ルールを語るほど浅いことはないです 大人は同じことは何回も教えてあげないんだよ
>>127のレスを10回音読してそれすらも理解できないならバカすぎて向いてないからプログラムは諦めとけ >>130
あなたは大人じゃないですね
歳だけは重ねてるかも知れませんが言ってることが浅すぎるので
そういう浅い経験しか積んでこなかった人です
whileに不安を覚えているあなたの方がプログラム向いてないです
ここで一句
プログラマ、若い人ほど頭が良い あぁ〜whileが書いてあるよどこでループ抜けるかわからないよガクガク ← アホ丸出しですw 素人が業務でよくやる思考停止3大案件(大きい順)
・思考停止while禁止
・思考停止大量フラグ
・思考停止大量ネスト 大好きなwhile否定されただけでこのファビョりようw
すげぇガキだな・・w
読解力もスキルもないくせにプライドだけはこんなエベレスト級だと
社会出たら速攻で自分の頭の悪さに嫌気さして自殺するんじゃねぇかな
まぁそもそもこれじゃ肉体労働しかなさそうだから関係ないかw >>136
あなたはニコニコ動画観てそうな自称大人の人って印象です ドワンゴ関係者かな? なんかちょっとそういう気がしたので 僕はwhileだけじゃなくてforが否定されたとしても同じように言いますよ
浅い人ほど自己ルールを作って他人に文句つけがちなので
> 読解力もスキルもないくせにプライドだけはこんなエベレスト級
これは全部そっくりそのままあなたに当てはまりますよ
僕には1個も当てはまらないですけど 僕は学生ですが、あなたはドワンゴか無職のどちらかです 読解力皆無+低スキル+妄想スキルあり
3連コンボでNG!!!残念!!!
あとはお友達と仲良くがんばろうな >>142
あなたは自分が言ったことに賛同が得られなかったら相手の読解力がないんだと思うのですか
あなたの言ってることがおかしいのです、あなたはこのスレにいる誰よりも経験が浅くて
まるでトンチンカンなことを言っています、そのことを自覚されたが良い
> 読解力皆無+低スキル+妄想スキルあり
これは全部あなたのことです
歳を重ねた良い大人なのにもかかわらずwhile禁止の自己ルールを語る滑稽さに気づいたが良いです 昔の現場でのこの手のやべぇのいたなぁw
自分の思い通りにならないと癇癪起こして手が付けられなくなるキチガイ
誰も関わりたくないから死ぬほど浮きまくってたけどw
まぁこいつはチョンだろうね
誰とは言わんけどね誰とはw Integer[] arry = {1, 2, 3};
foo(arry); // (1
foo(arry, "a"); // (2
private void foo(Object... o) {
Integer[] arry = (Integer[]) o[0];
for (int i = 0 ; i < arry.length ; i++)
System.out.println(arry[i]);
}
(1 は動かないのに (2 だとうまく行くのはなぜですか? >浅い人ほど自己ルールを作って他人に文句つけがち
めっちゃ判りますωωω ID変えて質問したり携帯で自演したりキチガイはプライドたもつのも大変そうだなぁw
誰とは言わんけどさ誰とはw >>146
(1の場合、Integer[]がObject[]に変換されて
o[0]に入ってるのはInteger型になるので
キャストで失敗するのでしょうね
foo(new Object[]{ arry });
こうすれば良い >>146
もし foo() がそれしか定義されてないならどちらもダメだと思うのだが >>149
それ以前の問題では?よく見てみなよ。それでもわからないなら試してみな。 学生レベルだとこんな幼稚なミスコードすらわからずに
自己顕示欲丸出しのドヤ顔でアホな回答しちゃうのか・・
さすがwhiler(失笑w >>151
僕は1)が動かない理由を説明したつもり
君は何を言いたいのか自分で説明したが言い 失敗するわけないことですら失敗するとか書いてて内容も滅茶苦茶だし
なぜアホはこんな3歳児レベルの基礎知識すらないのに回答しようとするのだろうか
基本の1すら教えられないのにw
これがwhileを安易に使う奴なんだよね >>152
君はいまどういう立場なの?
> 148 2021/10/03(日) 20:14:06.49 ID:FWk37WA/0 (11/12) [PC] デフォルトの名無しさん (ワッチョイ cf10-lQk+)
> ID変えて質問したり携帯で自演したりキチガイはプライドたもつのも大変そうだなぁw
> 誰とは言わんけどさ誰とはw
これが間違いだって気付いたなら僕に対する重大な名誉毀損だから発言取り下げて謝罪するのが大人なんじゃないかな? どう? 入門書レベルのコードミスにwhiler君が気づくまで見守るスレになりましたw >>154
失敗するわけなというのはどこのこと?
内容がめちゃくちゃって言ってるのはどこのこと?
君は具体的なこと何一ついわずに印象操作だけで他人の名誉を貶めようと
腐心しているようにしか思えないけどそれが節度ある大人のやることかな
胸に手を当てて自分自身に問いかけてごらんよ
学生の僕にガチ説教させないでよ >>156
君はコードにミスを見つけたわけだね
foo(arry, "a");
(Integer[]) o[0];
まさか、ここのことじゃないよなあそんな低レベルなミスを指摘するほど低レベルじゃないよねって思うけど
僕はギブアップですね、どこにミスがあるのか教えてください 質問は
> (1 は動かないのに (2 だとうまく行くのはなぜですか?
だから、1で動かなくて2でうまく行ってるところはどこかを理解して
それを分析して答えるってことをやらないといけないわけだけど
> foo(arry, "a");
> (Integer[]) o[0];
このミスはその質問とは関わりがないから無視してしかるべきで僕は言及しなかったわけだけれども
そこに思い至らない頭の悪い人間がいるっていうことかなって思った >>161
そう逃げるしかないよね、論理的に完全に敗北したもんね、君プログラマ向いてないね コードミスがわからればこんな意味不明な日本語でアホな屁理屈をダラダラと並べる必要もないのにw
ほんと悲しいアホだねw
誰か教えてやれよw プログラムを通じて論理的に議論できず
印象操作だけでなんとかしようとするその卑怯で愚劣なやり方で
いままで生きてきた ID:FWk37WA/0 がみじめに思えてしかたない ちゃんと教えてもこのキチガイwhiler君の次に言うことなんて
「ぼくちんはそういう意味で書いたんですけど???(キリッ!!!」とかテンプレ的な言い訳するの目に見えてるからな
バカなんだから一生悩んでろw >>164
僕が書いた日本語の意味までわからないんだw
君にとっては厳しい現実を突きつけることを書いてるから
君の頭が自己防衛で理解を拒絶してるだけだね
いまの僕には君の卑小な前頭葉で飛び交うニューロンの1つ1つまで手にとるようにわかるよ 人格否定の論点ズラしで逃げようとしても無駄無駄w
あほ >>166
僕は何も悩んでないですよ、君は頭が悪くて僕の頭の回転についてこれなかったから
ありもしないデタラメを吹聴して逃げおうせようとしてるただのバカだって結論しました がんばれー!がんばれー!whiler君がんばれー! 脳に障害があるwhiler君は一度ファビョってしまうとしばらくおさまらないので
ほかのみんなはいじめないであげてください・・何卒おねがいします SwingDesignerが使えなくなりました…
パソコン新調(Win10pro)したのでPleiades(Eclipse)の最新版導入。
Java版のフルをインストールし、ttps://download.eclipse.org/releases/2021-09/からWindowBuilder一式インストール。
そして新規→WindowBuilder(アプリケーションウィンドウ)で、ソースタブデザインタブが開かれる所までは正常に動作してます。
しかしデザインタブを開こうとすると
Unable to load *.wbp-component.xml description.
For component javax.swing.JFrame.
Check root exception for details.
と表示され、GUIのデザインフォームが何も表示されない。
何がいけないのか、調べても情報が少なく解決できませんでした。
誰か助けて >>172
> 170 :デフォルトの名無しさん (ワッチョイ cf10-lQk+) [↓] :2021/10/03(日) 22:38:26.91 ID:FWk37WA/0 (20/21) [PC]
> がんばれー!がんばれー!whiler君がんばれー!
日曜の静かな夜に悲しいピエロを目撃することになった僕に同情してください… 試してみたけどわからないなあ…どういう問題があると思ってるんだろ > 156 :デフォルトの名無しさん (ワッチョイ cf10-lQk+) [↓] :2021/10/03(日) 22:20:13.15 ID:FWk37WA/0 (14/21) [PC]
> 入門書レベルのコードミスにwhiler君が気づくまで見守るスレになりましたw
わかりませんでした、大先生教えてください やっぱこれ池沼whileが自分で作ったマヌケなコードを自演で回答してるだけだなw
だからドヤ顔でこんなアホ回答をいまだに出来るんだよw
キチガイすぎてこえぇ・・・w >>178
入門書レベルのコードミスがあるんだって主張はお取り下げになりますか? こういう問題はJavaの資格試験で出そうな感じだね コンパイルできて実行できるソースコードに対して
入門書レベルのコードミスがあるって主張する方がキチガイすぎて怖いと思いますけどね
ご主張は継続されます? 言ってることも滅茶苦茶でコードミスもバリバリあるままだけど?w
自演じゃないとまず池沼whiler君みたいな回答の仕方は絶対しないんだよねぇw
まぁこんなマヌケコードすらまともに読めない池沼っていうのもあるけどさw そもそも池沼whiler君のは何の回答にもなってないのにドヤ顔してるのがホームラン級の池沼すぎて怖いんだけどさw
ド 阿 呆 >>182
> 言ってることも滅茶苦茶でコードミスもバリバリあるままだけど?w
あなたは具体的に指摘できないのであなたが言ってることには説得力がないですよ
> 自演じゃないとまず池沼whiler君みたいな回答の仕方は絶対しないんだよねぇw
あなたからしたら僕の頭の回転が良すぎてあたかも問題を最初から知ってたかのように思えるのかもしれないですけど
僕は普通だと思うんですよね、あなたの頭が鈍いだけだと思ってます
コードを読み解けなかった池沼はあなたの方ですよ >>183
> (1の場合、Integer[]がObject[]に変換されて
> o[0]に入ってるのはInteger型になるので
> キャストで失敗するのでしょうね
>
> foo(new Object[]{ arry });
> こうすれば良い
僕のこの回答は理解できなかったですか?
あなたは問題さえ理解できてないようなのでその回答を理解できないのも当然のように思います だってまともな奴は池沼whiler君みたいなアホな回答は絶対しないからねw
どうやったらこんなマヌケな回答に行きつくのかを考えたら
このマヌケなコードに合わせて池沼whiler君が自演してる以外ないしw
ド 阿 呆 まともな奴は最初のマヌケコードの2つのミスを指摘したうえで
次にどういう使い方をすればいいか回答するんだよなぁw
池沼whiler君はそれを全部すっとばしていきなり引数の型そのものを変えてただエラーにならないアホ回答をしてるだけっていうねw
しかも引数に"a"を入れてるほうは完全無視してエラーでないからドヤァ!!!(キリっていう超絶バカ回答
マ ヌ ケ >>186
入門書レベルのコードミスがあるといったのに
具体的にどのようなミスがあるかを説明できなかったアホはあなたです 池沼whiler君がんばれー!がんばれー!がんばって生きろー! 池沼whiler君以外は池沼whiler君がいい反面教師になったなw
みんなもこんな脳障害発症させたアホキチガイになっちゃダメだぞ >>187
あなたは質問を読めてないですね
> (1 は動かないのに (2 だとうまく行くのはなぜですか?
これが質問です
(2 がうまく行くことは質問の前提ですよ
僕は(1が動かない理由を説明したうえでどうしたら動くかを示しました
それが>>149です
あなたはいまのところ何も回答できてないですよ
コードにミスがあると言ってはいるがそれが具体的にどこなのかは何ひとつ示せていない
あなたの言葉を借りるなら、あなたこそまともではないです 池沼whiler君
それね、日本語で屁理屈っていうの
わかる?
あーゆーあんだすたんど?
池沼君の回答は回答って言わないの
わかる?
あーゆーあんだすたんど?
バカ回答っていうの > 190 :デフォルトの名無しさん (ワッチョイ cf10-lQk+) [↓] :2021/10/03(日) 23:45:02.56 ID:FWk37WA/0 (28/29) [PC]
> 池沼whiler君がんばれー!がんばれー!がんばって生きろー!
>
> 191 :デフォルトの名無しさん (ワッチョイ cf10-lQk+) [↓] :2021/10/03(日) 23:49:28.10 ID:FWk37WA/0 (29/29) [PC]
> 池沼whiler君以外は池沼whiler君がいい反面教師になったなw
> みんなもこんな脳障害発症させたアホキチガイになっちゃダメだぞ
>
> 193 :デフォルトの名無しさん (ワッチョイ cf10-lQk+) [↓] :2021/10/03(日) 23:52:02.19 ID:FWk37WA/0 (30/30) [PC]
> 池沼whiler君
> それね、日本語で屁理屈っていうの
> わかる?
> あーゆーあんだすたんど?
> 池沼君の回答は回答って言わないの
> わかる?
> あーゆーあんだすたんど?
> バカ回答っていうの
そっくりお返しします まぁ自演池沼馬鹿に言っても自分で間抜けコード作って回答してんだから何言っても無駄だわなw
ここまで相手してやったんだから満足だろ池沼
あとは学校の先生にかまってもらえ池沼
あほw >>195
他人を散々バカにして自分の論理破綻に気付いたら発狂した振りして逃げるとか、そういうのもうやめようよ ほげぇえええwwwww
急に黙ったからやっと自分のアホさに気づいたのかと思ったらなんも理解してなかった池沼whiler君wwwww
ここまでの池沼だと学校の先生も大変そうだなw
これだけのバカはさすがにリアルだと死んでも相手にしたくねぇわw
ど あ ほ >>173
eclipse.iniの
--add-opens=java.base/java.lang=ALL-UNNAMEDの下に
--add-opens=java.desktop/javax.swing=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
を追加してeclipseを起動すればたぶん大丈夫 それか池沼っぷりの勢いが全然なくなったからただの負け惜しみか?w
バカ回答してるって自覚できたならちゃんと謝ったらどうだな?ん?
まぁ馬鹿なのにプライドはエベレスト級だから無理だろうけど
ど あ ほ ケンカは止めましょう
…と言いつつ書くけど、ID:dYls5rFx0は相手が学生だと分かったんなら
さっと手を引けよ 本気で煽ってんじゃねえよ >>198
ありがとうございます!!!!!!!!ありがとうございます!!!!!!!!
無事起動できました!!!!
本当にありがとう!!!! Java全体の知識吸収・勉強というのは
Androidアプリ開発のJavaの攻略や促進に役だちますでしょうか?
質問の意図としまして、自分はJava自体をよく分かっていないのですが、
Java全体は色々なサーバーや、ツイッターの開発もそうであったり、
Java全体としては沢山の事ができるとします。
AndroidはそのJavaの一部分を使用してアプリを開発すると思っています。
となると一見その、Javaの全体像のサーバーに関するところや、
全体は、Androidアプリ開発には直接関係なく、無駄な箇所であるかもしれませんが、
それらのJava全体を一応目を通すというか一通り勉強してから
Androidアプリ開発を始めたほうが、最終的には
Androidアプリ開発のみのJavaの参考書などをやるよりも
速く、Androidアプリ開発の知識を吸収して取り組むことができますでしょうか?
すみませんがお教え頂きたいです、宜しくお願いします; >>205
WikipediaとかでJavaの歴史を読めば分かると思うけど
ざっくりと元は家電製品の組込み用途であって、
一度書けば世界の何処でも動くように
IoTの先駆け的なものであったのだから今のスマホをリードして
標準でネットワークに対応していたりとかがサーバーサイドに強かったりWebサービスを広く普及させたのでdocomoのiモードは有名ですね
いつのまにか増改築で建て増しを繰り返している為巨大なツギハギになってたり
別の会社に買収されてから集金の道具となったりしてますから
時代背景や社会的背景も考慮してから自分が何を作りたいかを考えてみてはいかがですか? Java は、Java土方の仕事があるだけ。
ベンチャー・新規プロジェクトでは基本、Ruby on Rails の仕事しかない
YouTube で有名な、雑食系エンジニア・KENTA のサロンでも基本、Rails のみ。
バックエンドのキャリアパスは、Rails → Go のみ。
この2つしかない
PHP は一生やらなくてよい。
Javaも基本、保守の仕事しかない
だから、Javaのバックエンドを学ぶのは無駄。
直接、Android をやってください
例えば、Ruby による今世紀最大の学生起業家、Vagrant のMitchell Hashimoto(Hashicorp)も、
Go製のTerraform を作っている。
今はRubyではなく、Go プログラマーを募集している
多くの企業のバックエンドは、Rails, Go。
スクエアはElixir、他には、Rust を使う企業も少しあるけど、
基本、Rails, Goのみ 実務経験0のゴミしかいないから相変わらず回答も無意味な内容しかなくて笑える Androidアプリ(Kotlin)の案件があったときにJavaやっててよかったこと
・Android StudioはJavaコードをKotlinに変換してくれる機能があり、Javaを知っていたのでKotlinの学習が楽だった。
・画面構成が理解しやすかった。Layoutがあってコンポーネントを貼り付けてって感じが同じ。
・Canvasを直接使う事があり、Javaで文字の横幅取得して描画域にあわせたりした経験が活かせた。
サーバ側の知識とかは使わなかったし(PHPだった)、Javaのごく一部の知識が役立った感じ。
Androidアプリ作るのはPC用にJavaアプリを作るのと結構異なるし、Androidアプリから作り始めていいと思う。 皆様、本当に有難うございました。
Javaの今までと、それにおけるAndroidアプリ開発など
大筋をつかませて頂くことができたと思っております。
もう一度自身でJavaを振り返ったりしてみたいと思います。
Androidアプリ開発であっても、Java全体であっても
どのみち非常に難しいという感想は変わりませんが、
難しい分攻略したいという願望がなかなか消えないので、
なんとかしたいと思います・・ 有難うございました!!! WikipediaのJavaのページ読んでアドバイスとか最悪だなw 攻撃の種類(複数)によって処理を変えたいのですが、IF分を使わず書くにはどのようにしたらいいでしょうか?
AttackControl attackControl = new AttackControl;
attackControl.setAttack(Attack attack); // 攻撃を設定する
class AttackControl {
public void setAttack(Attack attack) {
if (attack isInstance of Tati) {
System.out.println("太刀での攻撃です");
} else if (attack isInstance of Yumi) {
System.out.println("弓での攻撃です");
} ..... else {
System.out.println("それ以外の攻撃です");
}
}
}
Attackクラスに
public enum AttackType {
Tachi {@Override
protected void setAttack(Attack attack) {attack.setAttack_Tachi();}
},
Yumi {@Override
protected void setAttack(Attack attack) {attack.setAttack_Yumi();}
};
protected abstract void setAttack(Attack attack);
};
を記載してAttackTypeによって振り分けをしたほうがいいでしょうか? weapon ってインスタンス変数を持てばいいんじゃね? 回答してやろうと思ったけど速攻で糞レス回答ついたからやめた 剣・弓、鎧・盾・アクセサリーなど、装備品をオブジェクト指向で設計する必要がある
ゲームプログラミングは膨大 >>214
public class Main {
public static void main(String[] args) throws Throwable {
攻撃(new 武器("剛弓ベルセルク・アロー", 武器種別.弓));
攻撃(new 武器("魔剣アクター・ネファリウス", 武器種別.太刀));
攻撃(new 武器("聖杖ユニコーンズ・ホーン ", 武器種別.それ以外));
}
static void 攻撃(武器 武器) {
System.out.println(武器.種別 + "での攻撃です");
}
static enum 武器種別 {
太刀, 弓, それ以外
}
static class 武器 {
String 名前;
武器種別 種別;
武器(String 名前, Main.武器種別 種別) {
this.名前 = 名前;
this.種別 = 種別;
}
}
} よく、ゲーム攻略本に載っている、
アイテム・武器防具の一覧表・パラメーターとか、膨大だろ
これらの数値をすべて決めて調整するなど、考えただけでも、ゾッとする 横からですみませんが
飛び道具って打つたびにnewされてコリジョン判定の都度デリートするの?
ダメージ判定のメソッドで爆発アニメ流してから消すの?
画面の外に飛んでいって何も当たらなかったなかったらメモリに累積してくの?
考え出したらしんどくなってきた・・・ 作り方次第としか……
画面外にいったのが分かるなら、そこで消せばよいかと。あるいは画面外に壁作っておいて確実に衝突させるとか? >>222
敵が出てこないと思ったら
画面外の壁で敵が死んでそう 自然に考えれば重力落下で地面に消してもらうと思いました >>218
ありがとうございます。
プレイヤーが装備している武器の種類により攻撃パターンを変えたいと思うので、
stateパターンを使ってみようかなと考えています。 Javaはガベージコレクションを自動でやってくれるそうですが、
実際にはいつ行われるのですか?
またプログラムで時期を指定することができますか? eclipseをneonから最新版にバージョンアップしたいんですが、
やり方が分かりませんでした
どなたか教えて頂けませんか? Javaはやはりどこかで実務でやっといた方がいいですかねえ >>221
HTML でも、よく議論されている
オブジェクトを削除せずに非表示にするだけだと、メモリを食う。
だから、メモリを開放するには削除するしかない
必ず、速度とメモリは、トレードオフ 非表示にして次必要になった時に位置だけ更新すればええねん >>226
GCの実装による。
通常の世代別GCなら、その世代のメモリが足りなくなった時かな。
System.gc()はあるけど、必ずgcが実行される事は保証されていなかった気がする。 >>231
この処理をしているときはGCが起こりにくくするとか可能ですか? 引数を一つ受け取るメソッドがあって、拡張のため違う型の引数も渡せるようにしたいのですがどうすらばいいですか?
考えたのは更に違う型をインターフェースで作り、引数に取る型をどちらもそれを実装するようにし、メソッド引数の型はそのインターフェースを実装したものにするというものです 引数をメソッドの先で別のメソッドに渡すのを続けているのでオーバーロードもインターフェースも変更が大きくなりそうでした。 おみゃーの目的が別の引数も渡せるようにしたいっていう質問で
それの回答としてオバマロードっていう最適解を貰ってるのに
変更が大きくなりそうとかほざかれても知らんがな
エスパーじゃねーんだよ コンストラクタについて3つ質問させて下さい
1. アクセス修飾子は基本的にpublicでよいでしょうか?
2. オーバーロードする際は、以下のような順に記述すればよいでしょうか?
public ClassA(int num) {
_this.num = num;
}
public ClassA(int num, String name) {
_this.num = num;
_this.name = name;
}
3. コンストラクタ内でif文などの制御構文を使ってもよいでしょうか?
public ClassA(int num) {
_if (num < 0) {
__num = 0;
_}
_this.num = num;
}
複数の質問で恐縮ですがよろしくお願いします public Human(int age, string name) {
if(18< age< 35){
System.out.print(" I'm perfect human!");
}} コンストラクタをプライベートににするとどうなるかわかってれば1つ目の糞みたいな質問は出てこない >>237
1. 基本的にpublicでよい。コンストラクタに代わるメソッドでオブジェクト生成する場合はprivateにすることも有る。
2. 順序は好み。規約があればそれに従う。
3. いいです。
2.に関連することだけど
コンストラクタのオーバーロード時はプライマリコンストラクタを決めて
他のコンストラクタはそれに委譲するのが習わし >>240
わかりました ありがとうございました
this()についても調べてみます また質問させて下さい
2つのメソッドを呼び出し、それぞれ整数を入力する以下のコードを
paizaで実行するとうまくいきません
https://paiza.io/projects/OxlAlZPyDRQE7fRT9DoRFg
どなたか対処法を教えて頂けないでしょうか? >>242
スキャナがバッファリングしてるんじゃないかな
同じスキャナを使い回すようにしたら良いと思う Mainクラス内でも静的フィールドを持つことは許されるのでしょうか? >>244
お礼忘れてました
ありがとうございます >>245
問題ないけど普通は可変のオブジェクトはインスタンス変数にしたり引数で渡したりする >>247
回答ありがとうございます
Scanner型の変数scをMainクラス内で静的フィールドにして、
2つのメソッドから使用するように変更したらうまくいきました
https://paiza.io/projects/OxlAlZPyDRQE7fRT9DoRFg
これでいいですかね スタックトレースって(e.printStackTrace)
プログラムが完成した後は削除してもよくないですか?
でも削除するひといないですよね?
なぜですか?
全然意味がわかりません 例外をキャッチする目的にもよるけど想定外のことが起きたときにスタックトレースは原因を調査するのに役立つ
printStackTraceを直接呼ぶことはなくて例外をロガーに渡したり例外を投げてランタイムがスタックトレースを出力するようにするやり方もある インタフェースを継承or実装して抽象クラスとする場合、
extendsとimplementsのどちらを使えばよいですか?
public interface Life {
_void eat(Food f);
}
public abstract class Human /* extends? implements? Life */ {
_public abstract Result act();
} 継承とインプリメントゥの違いをわかってればそんなバカな質問は出てこない
237のバカといい初心者以前のアホが多すぎる >>254
implements
extendsは継承の時に使う >>257
回答ありがとうございます
1つも抽象メソッドを実装してなくてもimplementsなんですね >>259
メソッドを実装してないからこその抽象クラスです
抽象クラスではメソッドの宣言だけして
implimentsで実体を実装する ↓のように、コピペの都合か、1つのソース内にて{}で区切ったブロック内で
同じ名前の変数を定義して使っているソースがあります
{
byte[] byteData = new byte[] { (byte)0x11, (byte)0x22, (byte)0x33};
func("%x\n", byteData);
}
{
byte[] byteData = new byte[] { (byte)0x44, (byte)0x55};
func("%x\n", byteData);
}
こういう作りになっていると、byteDataが解放されずにメモリに残ってしまうとか
そういうことってありますか?
スコープが{}内なので、{}を抜ければいずれガベージされる、と想像してるのですが
いかがでしょう どこからも参照されなくなればgcの対象になってその内解放される。参照があるなら解放されない。
例えば func() の処理で byteData をクラス変数やインスタンス変数へ代入していたらそちらから参照されることになるので func() から返って来ても gc の対象にならない。 >>263
回答ありがとうございました
func()の中身について、そのような代入等がされていないか、調べていってみようと思います >>255
確かに
>>237とか>>254とかみたいに
実際に動かたり調べたりしたら分かることなのに
聞いてくる人最近見かけますね?
どしたんやろ?
大丈夫かな?このスレ・・・ indexOfメソッドについて質問です
引数にString型を取るのは分かるんですが、
ある「文字」を検索したい時に、リファレンスではchar型ではなくint型を取る
と書いてありますがこれがよく分かりません
paiza.ioで試してみたら普通にchar型で動作しました
https://paiza.io/projects/3_3NU64tq1Rii15BtqjFOg
どなたかリファレンスにint型と記述されている理由を教えて頂けませんか? >>266
サロゲートペアといって、一部の文字は1文字を表すのにchar2つ分の領域を要する
intのサイズは32ビットであり、charは16ビットなので、intは1つでchar2つ分の情報を持つことができる
indexOfはサロゲートペアに対応していて、char2つ分の情報を1つのint値として引数に渡すことでサロゲートペアに属する文字の検索が可能 >>267
知りませんでした
ありがとうございました
Javaでは'a'とした時これは「整数型」として扱われるのでしょうか? 質問です。Jakarta EE と jetty を maven でつかう正しい依存関係の記述をおしえてください。
ゴール:Jakrta EE と Jetty をmavenでつかいたい。
わからん:
次は、jetty に依存させる。わかる。これがServletの実装なんだよね?
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
</dependency>
これは何に必要?何の役割?
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
ネットでみつけた。これは何。
<!-- https://mvnrepository.com/artifact/jakarta.platform/jakarta.jakartaee-api -->
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>9.1.0</version>
<scope>provided</scope>
</dependency> ウェブ系は、この板ではなく、WEB プログラミング板じゃないの?
Servlet, Jakarta, Jetty とか、まだあったのか
Jakarta EE は、もともと「Java EE」として開発されていたものが、
2017年に、OSS となったものです
Jetty は、100% Javaで開発されたOSS で、Java Servlet コンテナ/Webサーバである >>267
サロゲートペアつーか、コードポイントじゃね? >>272
サロゲートペアが無ければcharの値は即ちコードポイントと同じ WindowsむけJDKをダウンロードしたいのですが、下記サイトにアクセスすると真っ白で何も表示されません。
https://www.oracle.com/java/technologies/downloads/
配布元がへんこうになっているのでしょうか? なんどもすみません。
結局OpenJDKをダウンロードいました。OracleJDKは未だに手に入りません 今見ると真っ白ではないよ。「Java Downloads」と書いてあるページが出てくる。
一時的にダメだったか、またはブラウザの問題では。
こちらは Windows の Chrome を使っている。 私も見えるようになった(数時間前は見えなかった)
Wjndows10: Opera
一時的に保守かなんかしていたんじゃないの? List<Integer> int1 = List.of(2, 8, 13);
List<Integer> int2 = List.of(5, 7, 10);
この二つのリストのペア(2, 5), (2, 7), (2, 10), (8, 5), (8, 7) ....
の中でその差が一番小さい(この場合8と7)を取り出したいんですが、streamでやるにはどうやったらいいですか?
このあたりで行き詰まりました。
int1.stream().flatMap(i -> int2.stream().map(j -> Math.abs(i - j) やってること無茶苦茶だし
falatmapの使い方間違ってる上に中でmap使う意味も全くないし
頭大丈夫か? そもそもList二つ使って管理しようってのが間違い 一応出来たんですけどなんか無理矢理感が
List<Integer> int1 = List.of(2, 8, 13);
List<Integer> int2 = List.of(5, 7, 10);
var op = int1.stream().flatMap(i -> int2.stream().map(j -> new ArrayList<Integer>(Arrays.asList(i, j, Math.abs(i - j)))))
.sorted((ar1, ar2) -> ar1.get(2) - ar2.get(2))
.findFirst();
System.out.println(op.get().get(0) + ", " + op.get().get(1)); こいつ人の言うことなんも聞いてねーな
こんなゴミコードメンテさせられたら秒で削除するわ >>284
>>285
むちゃくちゃどころかストリームでデカルト積求めるオーソドックスなやり方だよ、君ストリーム童貞でしょw >>288
きれいな解法だと思うけどね
なんとなくもっさりして見えるのは標準ライブラリのせい >>289
君がメンテできるコードなんてあるの?w Java16以上ならリストよりレコード使ったがわかりやすいかも 阿呆がワッチョイ変えて必死に反論しててワロタ
こんなバカみたいな書き方がオーソドックスとかSNSで行け低能 streamでここまで見るに堪えないゴミコード書く奴初めて見たわ
意味ないmapを作ったり要素に固定値指定してソートしたり
こんなド素人コーディング見つけたら1時間説教したあとにクビだよ低能 差が同じ場合のケースも考慮してないし
こんな糞みたいな集合の作り方がオーソドックス?w
あほ いまどきストリーム使えない童貞くんの方が戦力外だよ 異論と共にコード晒してたらかっこいいのになぁ
中身は何も無しで異論唱えてもなぁ
ただの雑音なんだよなぁ Kotlin で書き直すとこんな感じかな。
import kotlin.math.abs
val int1 = listOf(2, 8, 13)
val int2 = listOf(5, 7, 10)
val op = int1.flatMap { i -> int2.map { j -> listOf(i, j, abs(i - j)) }}.sortedWith(compareBy { it.get(2) }).first()
println("${op[0]}, ${op[1]}") Kotlinだと全然読めるな
現代の言語のシンタックスは流石だわ でもパフォーマンスはforループの方が圧倒的によさそう。 つーかこれに関しては見やすさもforの方が上回るんじゃ 一番小さいのをとってくるだけだから畳み込みながらやらないと効率悪い気がする
val absComparator = compareBy<Pair<Int, Int>> { abs(it.first - it.second) }
val op = int1.minOfWith(absComparator, {x -> int2.minOfWith(absComparator, {y -> Pair(x, y)})}) ファイル書き込みと例外処理について質問です
下記のコードにおいて、FileWriterインスタンスfwをnullで初期化するのと、
finallyブロック内でif文を設ける必要性が分かりません
どなたか回答お願いします
https://paiza.io/projects/XT01g3Tvsegsad5p90xraA >>305
FileWriterをnewするときに例外が発生する可能性があるから
最近のバージョンのJavaではtry-with-resourcesというものがあり、このような醜悪で冗長極まりない記述は不要になっている >>306
ありがとうございます
自分ちょっと頭が弱いもので、疑問が残りました
「インスタンス化の時に例外が発生する」という問題は、
try-catch-finally文にすることで解決すると思うのですが、
それに加えてなぜ初期化やnullチェックが必要なのか分からないです JavaのJFrameについて.
for文でaddを保持したいのだけれど、どうすればよい?
このままだと、最後のtitle4しか表示されぬ。
JFrame jFrame = new JFrame();
JLabel title1 = new JLabel();
title1.setText("アイテム名");
title1.setBounds(10, 50, 400, 20);
JLabel[] title = {title1,title2,title3,title4} ;
for(int i=0;i>4;i++) {
jFrame.add(title[i]);
} >>308
少し弄ったがこれも失敗...
String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel title = new JLabel();
for(int i=0;i>4;i++) {
title.setText(titleName[i]);
title.setBounds(10, (50+(i*30)), 400, 20);
jFrame.add(title);
title = null ;
} >>307
じゃあインスタンス化したときにも例外が発生することを考慮して自分で書いてみたらいい
なんでそうなるのかわかるから >>309
LayoutManager設定しないと駄目だったような >>311
一応個別で作ると、それぞれ表示されていました。
addを複数代わりに使う代わりに、for文で横着しようとしております>< >>309
これでどうだ
String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel[] titles = new JLabel[4];
for (int i = 0 ; i < 4 ; i++)
titles[i] = new JLabel();
Container p = getContentPane() ;
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
setBounds(1000, 300, 300, 110);
for(int i = 0; i < 4 ; i++) {
titles[i].setText(titleName[i]);
p.add(titles[i]);
}
setVisible (true); 訂正
String[] titleName = {"アイテム名","イベント","利益率","調合確率"} ;
JLabel[] titles = new JLabel[4];
for (int i = 0 ; i < 4 ; i++)
titles[i] = new JLabel();
JFrame jFrame = new JFrame();
Container p = jFrame.getContentPane() ;
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
jFrame.setBounds(1000, 300, 300, 110);
for(int i = 0; i < 4 ; i++) {
titles[i].setText(titleName[i]);
p.add(titles[i]);
}
jFrame.setVisible (true); >>314
やはりaddは複数ないとだめなのか..?
表示されない... くだらねぇゴミコード書きまくって糞ド低能ども
ゴミの日記帳じゃねーぞアホ >>316
あ、残業お疲れ様です...
かえって早々ゴミコード見せてしまってすみません
つ酒 >>311
他のドロップダウンなどに干渉してただけでした
ありがとうございました.. for の i, j にそのまんま配列の値を入れれば良いだけだった。こっちの方がすっきりするな。
https://paiza.io/projects/-jlvNt9oDKblL8Lsgs-Ouw >>319
fw.close();
をする時には、必ず、fw が有効じゃないと、そこでエラーになる
Ruby でよく見る、No Method Error
レシーバーがnil・無効な場合に、メソッドを呼んで、エラー。
nil に、.close() というメソッドは存在しません
nil.close(); リソースに書き込み可能なファイルを置くっていうのは悪手なんでしょうか?
JARにすると参照して書き込むような仕様になってないような気がしてなりません ブックマークレットでtomorrowの部分を自動クリックするものを作成しようとしましたが出来ませんてした。
じゃ場すく利ぷと:(fuえぬction(){docゆーment.geティーElいーmeえぬtsByClえーssNaえむe("div.btえぬs>bティーnえすt"))[0].clあいck();
以下ソースです
<dあいv claエスs="bティーns">
<diぶい clエーss="btエヌst">
<sピーan clエーss="ビーtn-tiティーle">paper : </spaエヌ>
<a hアールef="じゃばく巣区りぷと:;" シーlass="ビーtn-paper aシーtive" data-link="英数字記載">today</エー>
<a hrイーf="じゃ場す苦りぷと:;" clえーss="bティーn-paper" ディーata-lアイnk="上記とは違う英数字記載">yesterday</えー>
<a hreエフ="じゃば酢く理ぷと:;" claエスs="btエヌ-paper" daティーa-エルink="上記とは違う英数字記載">tomorrow</エ〜>
クリックしたい箇所はURL1個につき1つですが、tomorrowの位置が2つ目だったり3つ目だったりします、URLが10個以上あり、1つ目をブラウザで開き該当箇所クリックし閉じる、2つ目をブラウザで開き閉じるを繰り返していきたいです。
1つ目と2つ目のURLを開く時間の間隔は10秒から15秒の間でランダムで開きたいですが難しければ、手動で1つ1つブックマークレット作成する方法でもよいです。 こんなゴミみたいな事も自力で出来ない奴って
ランサーズとかに転がってるゴミみたいな仕事を遠足のオヤツ代にもならない金額で出してるアホの匂いがする
消えろゴミ Ruby on Rails では、Capybara で、ボタンのラベルなどでも、要素を特定できる
selenium webdriver でも、複数の要素を取得してから、
要素のテキストで、一致するものをフィルターすれば良い BreakIteratorの使い方なんですが、コンストラクタに渡すロケールというのは処理するテキスト
のロケール(言語)のことなんでしょうか。
また、複数の言語が混ざっている場合(例えば日本語と英語)、その部分毎にロケールの違う
BreakIteratorのインスタンスを生成して処理する必要があるでしょうか。 spring等のフレームワークを使わないプログラムについて、何か呼び名とかあったりしますか? >>332
質問以前の糞ゴミ低能はママにでも聞いてろ糞馬鹿が ほんとアホどもって自分で考える思考能力がゼロなんだよな
誇張でもなんでもなくガチでゼロなんだよな
消えろ糞ゴミ 入門書に、変数を宣言したら一緒に初期化も行うように、と書いてありましたが、
なぜでしょうか? >>338
初期化するのを忘れて
いきなり参照して
エラーになるのを防ぐため >>339
レスありがとうございます
0やnullなどでも取り敢えず入れとくべきでしょうか? ArrayList<Integer>に格納されている整数を
ArrayList<String>に書き込みたいのですが
型を変換するためにどのような方法がありますか? >>341
integerList.stream().map(Integer::toString).collect(Collectors.toCollection(ArrayList::new)) >>340
無意味な値を入れておくのはおすすめできない。むしろ値設定し忘れたまま参照したのならばコンパイラがエラー出してくれるので、不具合入りづらくなる。
ローカル変数の場合ね。 >>338
答えになってないかもしれないが
「変数宣言したけど初期化しようかどうしようか?」
って迷ったら、まずその変数宣言は
本当に必要なのか検討するべきだと思います。
こういう時に宣言したら、無意味な宣言だった事が多々あった
様な気がする Javaブロンズの勉強中ですがネスト使われると実行順番が訳分かんなくなります。
何か見分けるコツ等はありますか? ネスト?インデントや中括弧で見分ければ良いのでは? >>349
最初は意識してControl Flowをしっかり押さえるようにすればいいと思う
その例だとControl FlowにあたるのはLoop:for, do~while, if, break:Loop
慣れの問題なので1週間もすればこのレベルはすぐわかるようになる >>349
コンパイルエラーだろ
全角スペースが混入している可能性を否定できない >>354
ワンステップずつ根気よく追いかけるしかない、これは試験だけの話じゃない、バグ取りでも必要な技術だ 実務じゃまずお目にかかれないような絶望的カオスコードだけど
ステップ数も短いしマジックナンバーもないからこれぐらい読めないと実務なんかできねー罠 すいません何度も
解説が無いからイマイチ分からないんですが
6行目のgetId()メソッドの()内に、受け取る変数を入れなくても戻り値が入ってるのは何でなんですか?
https://i.imgur.com/lzBNxJh.jpg そういう超低次元な疑問が湧くのはイマイチどころか何一つ理解してない
入門書の0ページからやり直してこい こんな低レベルな疑問はお前と質問者だけしか通ってねーよ >>358
返す値は受け取る変数の有無とは無関係。getId() が int の値を返す事はメソッド名の前にある int が表している。
そして return で int の値を返している。 >>358
int hoge(){ return 10; }
って書いてあっても、10が返るからな。 ArrayListのIntegerの5x5の二次元配列があります。
これを5x5マスで出力したいのですがどのような方法がありますか? 12345
12345
12345
12345
12345
↑こういうのです。 素直に2重ループ回しておけばいいんでない?
あえてStream API使いたいとかなら、joinとか使いつつ文字列としてつなげて、その後に出力とか。 >>371
Hello Worldはやり方わかります? >>373
それで「わかりません」ってレスされたらどう返すんだ? >>374
何も
質問内容からして似たようなものでしょうし Javaブロンズ問題解いてるけど、選択肢でコンパイルエラーと実行エラーの2択に絞れた時の違いが1番迷う どんな問題なのか想像できないので、何に悩むのかがよくわからない……
どんな問題なの? androidでcatchした例外を再throwしたいが、finallyがあるとthrowされない。
catchでフラグ立ててfinallyでフラグチェックしてthrow new IOexception()すると再throw出来たが、何か良い方法ありますか? >>378
え?再throwできない?
必要最小限にまで省略した動くソースを公開してみてくれ。 finallyにreturn書いているとかじゃ無いよね? >>380
finallyにreturnを書いてます。
finallyの外にreturnを移動させて確認します。
また報告します。 >>379
すみません、一つ上で解決しなかったらアップします。 finally節にreturn があることが原因でした。
ありがとうございます。
hoge() {
semaphore.tryAcquire();
int data = 0;
try {
// IOEceptionの可能性がある処理
} catch (Exception e) {
throw e;
} finally {
semaphore.release();
}
return data;
} プロゲートはJavaクリアしたけど、そこから何をやればいいか分からん
結局どうやってアプリやら作るのか分からんし作りたい物もないし 競技プログラミング専門でやってきたので文字列以外の入出力を扱う手法についての知識がありません
ある程度のキーワードがあれば自力で勉強もできるのですが何か最初のとっかかりがあると助かります
目標としてはこれくらい絵を動かせると色々作れて嬉しいですね
https://atcoder.jp/contests/future-contest-2021-qual/tasks/future_contest_2021_qual_b 質問なら質問文で書いてほしいわ
ただの呟きなのか回答が欲しいのか分からん
384とか386とか、そうですねとしか 経プロってただの自己満で応用力ゼロだから業務に向いてない
教科書を暗記すればだれでもいい点が取れる中学生の勉強と同じ java使ってるところは99%が社内システムだから痛くも痒くもない 社内システムなら問題ないと思ってるやつがいるのか
ヤバすぎ ユーザーアンケートの回答内容に仕込んで社内CRMシステムを間接的に乗っ取るとかはできるかもな
それが間接的であっても信頼できない者から受け取った入力内容をログに出力している箇所全てが問題になるとしたら、ほぼ100%だろうね アンケートの回答内容は普通はDB管理でログ出力しないでしょ
ログ出力されるのはリクエストヘッダーとか
RCEだから何でもあり ログ出力してない保証はないだろ?
アンケートの回答内容は個人情報が含まれてたりするからログ出力すべきではないけど、
Javaドカタの現場でその程度の常識が常識として通じるところがどれだけあるかは疑問だな log4j、業務アプリでは使ってないこともあるかもしれんが(あるのか?)
そいつを動かしているフレームワークで使ってるものなのだよな
自分らの業務アプリを動かすために使っているフレームワークがlog4jを使っているかどうか
ということについて、プログラマー連中はどうしてインフラ担当の仕事だと思っているのだろうな 社内システムばかりやってるJava土方ってガチでセキュアプログラミングの常識ないからな
SQLインジェクションはまあ社内システムだからある程度目を瞑るとしても、
リリースしたら数百万件の個人情報がログに出力されるコードを受け入れに出してきやがったときは流石にこいつら頭おかしいんじゃないかと思ったわ 低能の自己紹介やめろ初心者の糞ゴミ
社内システムなんてハッキングする価値なんぞ1_もねーから対象にすらなんのに知ったかでわめくなアホ低能 しかもSQLインジェクションに目を瞑るとかそっちのほう100億兆倍やべーよ糞低能
ホームラン級のバカかよコイツw
まぁどうせプログラムできない糞ゴミ初心者の低能運用マンがこのスレ見てて
イキっちゃったんだろうけどアホ低能
糞アホ レスつけたあとにこんな無知なゴミがイキってたとかw
ホントしばらくレスつけたあとはちょくちょくスレ見とかないといかんな
アホ たぶん同じ低能だろうけど上のレスのほうにもアホなレスつけてるのあるなw
アンケートの内容をログ出力wwwww
まさにアホwww
プログラミングしたことないからログ出力する基準がわからんみたいだなw
消えろ糞アホ >>401
SQLインジェクション目を瞑ったらダメやでw
なんなら個人情報ログ出力のほうがセキュア >>406
モノによるんじゃない?
さすがに完全な新規開発だったり明らかに簡単に攻撃が成立するようなものは気付けば弾くけど、
システムをよく知る社内の人間に悪意があれば悪用できなくはないけど現実的に考えて可能性は極めて低いだろうというレベルまで機械的な基準で修正させてるとキリがないよ
バッチ処理など奥の方のトランザクションまで含めたら、SQLインジェクションできないシステムの方が珍しいんじゃないかな
普通はフロントで弾くだろうけど、コードを書いた人間は殆どの場合そこまで考えて判断しているわけではない ああすまん、SQLインジェクションできないシステムのほうが珍しい、は言い過ぎだな
結果的にフロントで弾かれていて問題ないケースが多いとしても、局所的に不適切なコーディングがされていることは全く珍しくないということだ ひょっとしてこの知ったか低能君は毎回システム組むたびに手動でインジェクション対策してるとでも思ってるのだろうか・・・・w
無知をこんなドヤ顔でひけらかす阿呆が金もらってるとかありえんと思うから学生だろうけど
消えろゴミ >>410
それはまさにフロントで弾かれていて結果的に問題ないケースだよね
だからそう言ってるじゃん 知ったかの癖にこのさもぼくちんは技術に詳しいですよみたいな痛々しい文章の書き方がアホすぎるw
新卒とかによくいそうなマヌケな低能
糞あほ フロントで対策wwwwww
しねーよ知ったかアホwww
ググってもわからんのか?w
あ ほ >>413
フロントで対策というのはブラウザのJavaScriptのことじゃなくて、WAFだったりWebフレームワークのミドルウェアの話だぞ
わかってて揚げ足を取ろうとしてるだけだと思いたいけど 何言ってんだこのアホw
お前の言ってるフロントでの対策がミドルウェアのどの部分でのどういう対策してるか言ってみ
ほれ?どうした?wん?
知ったかだから言えない?w
あふぉ たまにこういう、病的に罵倒してくるやつ居るよな。仕事やプライベートでバキバキに精神折られて、こういうところで他人を罵倒して自分の存在意義を確認するしかないんだろうな。 はいはい反論できなくなった奴の人格攻撃ねw
もう100万回ぐらい見て飽きてるから反論できないなら負け犬の遠吠えしてないでとっとと消えろゴミ
あほ SQLインジェクション見逃し君を罵倒してるのが
社内システムならRCEでも問題無し夫ってのが笑える
いや笑えないのかw 精神年齢5,6歳ぐらいの巨体幼児が癇癪起こしてて見るに堪えないわ。
人とまともにコミュニケーションをとってこなかった奴ってこうなるんだな。
恥っず javaブロンズの模擬問題集って黒本より紫本のが難しい?
黒本だと8割取れたのに紫本だと5割しか取れんかった 1週間後にまた負け犬の遠吠えしてる池沼ワロタw
どんだけ悔しがってんだよ池沼
反論できないならとっとと消えろ
糞あほ この問題の解答がBになる理由がイマイチ分かりません
Testクラスをインスタンス化した時に
String nameが2つあって
hanaの方が出力されるのは何でなんですか?
args[1]より優先されるのは先に書いてるからですか
https://i.imgur.com/FEw0fzp.jpg
https://i.imgur.com/eOXGTNB.jpg 引っ掛けみたいな糞問題だからしゃあないけど
5行目で作られたインスンツ変数のtestクラスはnameには引数で受け取った値は入ってない 4行目のnameはmain関数のローカル変数
obj.nameはTestクラスのメンバー かわいそうだから回答つけてやったのに
回答つけたとたんに猿真似したように続けて回答つけてる奴が100%沸くからこういうとこで回答する気がマジ失せるんだよな
この猿真似マンってなんなんだろうなマジで 途中送信失礼
>>427は回答とは言えない
回答するならなぜ入っていないのかまで言うべき おめーの方が回答になってねーよ低能
ワイは原因の箇所を書いてんだから質問者の稚拙な間違いも自分で気づく
こういうおめーみたいな低能でもわかる質問だとおめーみたいな猿真似が沸くから最強にイラっとするんだよな
「なぜ入ってないから言うべき(キリッ!!」じゃねーよ低能wwwwwww
あほ >>432
他の回答者のコードにケチつける君は
「低能でもわかる質問」にしか答えていない
おもしろいネタですね すいません、今週末にジャバブロンズの試験を受けるので、教えてほしいのですが
https://i.imgur.com/mhGqbzI.jpg
https://i.imgur.com/heuaMND.jpg
一応答えは6行目のthisコンストラクタが先頭にないのでコンパイルエラーなんですが、仮に先頭に配置されていたら3.6が出力なのがイマイチ分からなくて
7行目でa++になっているので4.6かとおもったのですが後値だから3だとしてもいつプラスされるのかがどうしても分かりません 黒本の模擬試験なら8割は取れるのですが、紫本だと6割ぐらいしか解けません
試験自体は紫本レベルなのでしょうか >>437
紛らわしいだけの糞問だな
君の疑問の通りこのa++には全く何の意味もないので、コンパイラがもっと賢ければコンパイルエラーになってもおかしくない this.a = a++;
は分解すると
this.a = a;
a = a + 1; すいません理解が悪くて
>>440
a=a+1でaに4が入るわけではないのですか? >>441
this.a = 3
a = 3 + 1
でも出力はthis.a ありがとうございます
a=3+1は別の場所でaを出力した時に反映されると考えときます
後置は単体で出力なら数字に反映されるのは分かるのですが、演算や計算や変数にした時に後から反映だったりややこしいです そもそもフィールド変数とローカル変数の違いがわかってないんじゃないか? >>444
クラス直下に宣言する変数がフィールド変数で
それ以外のがローカル変数ぐらいの認識で、フィールド変数とローカル変数で同じ名前使われた時の、インクリメントや計算入った時の変数の値の変化がイマイチ掴めていません
多分初歩的な所を理解せずに進んでしまってるから、紫本みたいな分かりづらい問題でつまづいています メソッドのブロック内と同じ変数名なら this. 付きでアクセスしているやつがインスタンス変数 >>437
>3.6が出力なのがイマイチ分からなくて
分からなかったらパラメータがどう変わっているか
実際に見るのが一番だと思う。
そうだな、6行目のコンストラクタの最後辺りでこんなコード書いて
どんな結果がでるかを見るとか、ね?古典的な方法だが・・・
System.out.println("this.a = " + this.a);
System.out.println("a = " + a); ワッチョイ a301-7ISP ←このゴミ >426の回答もらっても礼の一つも言わないゴミ
こんな小学生でもわかるもんすら聞かないとわからんくせに
礼も言えないとかとっとと消えろ糞ゴミ低能
二度とレスつけるな低能 >>448
すいませんでした気をつけます
模擬試験をやってるのですが
参考書にprivate修飾子はクラスに使えないとあるのに、模擬試験の問題でprivate修飾子使う場所にクラスがある選択肢が答えなのは何故ですか?
https://i.imgur.com/WJ4dcCI.jpg
https://i.imgur.com/nLhSqIC.jpg
https://i.imgur.com/8zyGfEu.jpg 言語仕様的には
・トップレベルクラスはアクセス修飾子に protected や private は使えない。
・メンバクラスにはアクセス修飾子に protected や private も使える。
・ローカルクラスにはアクセス修飾子は一切使えない。
参考書はトップレベルクラスしか考慮してないってだけ。 >>451
そうなんですか
見分ける方法ありますか?
別の問題集ではクラスにprivate修飾子は使えないって回答の問題あったのでどうすればいいのか分からず
他の選択肢との組み合わせで判断するしかないですぬか JavaBeansってセッター・ゲッター以外に演算などのメソッドを含めてもよいものなのでしょうか?
調べてみたところ、それらしき例題コードは見つかりませんでした・・・・・ >>454
え?そんなの作ってはいけないなんて制限は無い筈だが?
というかそもそもゲッターセッター以外のメソッド作れなかったらまともなクラス作れないのでは? Javaブロンズ合格したのでシルバー受けようかと思ってるんですが、教科書見る限りブロンズと大して変わらないレベルですか? 合格したのかよっw
試験受けるのはいいけどもう少し実際のプログラミングに必要な基礎を学んだほうがいいぞ プロゲートとブロンズの試験問題をエクリプスで打ち込んだぐらいしかやってないから完全な素人です
実務練習するには何をすればいいですか? >>460
1月から就職なので残り時間少ないのでシルバーの勉強しときます >>455
参考書とかだと値を入れておくだけの扱いになっていて、疑問に思ったので質問しました。
自分で調べてみても、参考書と同等のことしか書いてないサイトしか見つかりませんので、
お手数ですが、参考になりそうなページがありましたら教えていただけますか? 基礎的な事がわかってないからそういうくだらない疑問が沸く
まずセッターゲッターがなんのためにあるかから理解しろ >>466
ありがとうございます。
Beansっていう仕様はあるけど、別物であって、セッター・ゲッターないし、
setProperty・getPropertyが便利だから体よくBeansと呼んでいる…
みたいなことでしょうか? Beansなんてもう使われてないから全く気にしなくていいよ
今や絶滅したJavaのGUIビルダーとかの名残 まあしかし外部から勝手にpublicの変数を書き換えられないようにするというアイディアは良いものだと思うのでゲッターセッターは使った方が良さそうな所で使うと良いと思う。ゲッターだけ作ればリードオンリーの変数や計算結果を返すような呼ばれるまで変数の実態を持たないようなやつも作れるし。
Kotlinなんかは特に意識しなくても内部でゲッターセッター作られてそこ経由のアクセスに自動的になる(自作のゲッターやセッターにしたいならget()やset()を書けば良い)。
まあしかしこうやって言語レベルで面倒見てくれないと書くのが面倒くさいというのはあるな。 まだ普通につかうけどな。遺産扱いする奴らはdtoとかどうしてんだ Javaは言語自体をシンプルにするためとかもあってプロパティというものを言語ではサポートしていない。
そこで、get/set + プロパティ名のメソッドをデフォルトでプロパティとするという約束をJavaBeans仕様で決めた。
この仕様(おもにJavaBeans仕様のプロパティに関する部分)は便利だったので、GUIコンポーネント以外のフレームワークでも利用されて今に至る。 いまとなっては lombok があるので、わりとどうでもいい話だ >>470みたいな人がJavaBeansを適当に解釈して>>466で言うひどいサイトを量産してるんだよな >>473
結局何が間違ってるのか何も指摘出来てなくてワロタ。 どういう理解でlombok使っているのかよくわからんな。
大部分のアプリケーション開発ではあんまり知らなくても問題ないから、上っ面だけ理解して使っていても問題無いってことかな。 基礎的な質問をさせて下さい
「データ隠蔽とカプセル化を行うことにより、再利用性が向上する」
という記述があったのですが、なぜ再利用性が向上するのでしょうか?
どなたか回答よろしくお願いします データ隠蔽やカプセル化は別に再利用性の向上には寄与しないよ
むしろ実装丸出しの方が使い回しの幅は広がるだろうね ちなみに、システムの資産のうちで最も再利用されることが多いのは「データベース」だ
隠蔽もカプセル化もクソもない生のデータそのものなわけだが、極めて再利用性が高い
一般にコードよりもデータの方が変化しにくくて安定しているんだよ あ、データが変化しにくいというと語弊があるか
変化しにくいのはデータの内容ではなくデータ「構造」な >>477-479
回答ありがとうございます
うーんでも、翔泳社のスピードマスター問題集には確かにそう書いてあるんですよね… 年末年始でかなり時間が取れるので本読みつつJava勉強しようと思ってるのですがJavaには良書名著などありますでしょうか? >>478
データベースは固定資産でクラスオブジェクトは流動資産みたいな例えも出来るな。 まーた頭の悪い回答してる初心者が質問してる初心者を混乱させてるな
ほんと質問スレって回答する奴ががアホしかいないからやべーんだよな
アホほどスレに張り付いてて光の速さでレスつけてく現象は何なんだろうなほんとマジでw
低能逝ってよし!!!!!!!!!!!!!!!!!!!! そして質問初心者はなぜかアホな回答してる奴にだけ礼を言うスーパーアホ現象もちょくちょくあるんだよな
アホ同士だから通じるものがあるんだろうなきっとw
アホアホループやめーや
ゴミ 逝ってよし!って、なんか懐かしいな。2000年代を思いだす。 既存クラスに手を入れないんだったら、隠蔽されてない方が自由度が高いんだから再利用しやすいのは論理的に自明でしょ 再利用性を何一つ理解していないそのオレオレ低能理論を初心者にさも当然のセオリーのように教えるのがこういう低能スレのヤバいところ
そのアホ理論で言ってたらフレームワークなんてこの世に存在しないよなぁ
な?どうした?アホでも超わかりやすく教えてやったけど理解できたか?
あほ フレームワークがprivateメンバを公開したら再利用性が低下するか?むしろ向上するだろ
あえて再利用の自由度を制限することでフレームワーク側の実装変更の自由度を確保しているんだよ
フレームワークの例で言うと、極論すれば、アプリが正しくレールに沿った作り方をされているという前提において、
その典型的なアプリから直接使用されることのないメンバやクラスをフレームワークは一切公開しないのがカプセル化の観点では理想だ
でも実際のフレームワークはそうじゃなくて、内部的に使われていて普通直接アプリから使われないものも沢山公開しているだろ?
それは再利用の自由度のためにカプセル化を崩していることにほかならない 案の定アホの意味不明で支離滅裂な長文始まったよw
ほんとこの手の低能はヤバすぎだろ
このゴミ長文を一文一文添削しなくちゃいけないわけ?w
消えろゴミ
あほ >フレームワークがprivateメンバを公開したら再利用性が低下するか?むしろ向上するだろ
はぁああ?しねーよバカ
>あえて再利用の自由度を制限することでフレームワーク側の実装変更の自由度を確保しているんだよ
はぁ?ww意味不明ww言ってること無茶苦茶w
残りの駄文も小学生が書いたような全然繋がりのない意味不明な駄文で添削する価値もない
全力で逝ってよし!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1週間以上前の事>>448を根に持っててワロタ
>>425がブーメランでさらにワロタ >「データ隠蔽とカプセル化を行うことにより、再利用性が向上する」
これを理解するには「データ隠蔽」「カプセル化」「再利用性」の定義をそれぞれ理解する必要がある
特にカプセル化は使う人や文脈によって意味が変わるので試験対策なら試験用の定義だけをおさえておけばいい
https://docs.oracle.com/javase/tutorial/java/concepts/object.html 日本語の「隠蔽」という言葉が案外とネガティブなニュアンスで用いられる事が多いから、
何か相手に真相を悟られないよう悪手で工作をするネガティブな心理操作が働いてしまう罠。 >>492
なんで、あんなに発火してるのかとおもってたけど、なるほどな。 >>493
ありがとうございます
再利用性という言葉の意味が理解出来てませんでした
データ隠蔽は、フィールドをprivateアクセスにして外部から隠すこと
カプセル化は、ゲッター・セッターを通してフィールドにアクセスする仕組み
だと理解しております カプセル化と情報隠蔽は人や書籍によって、認識が結構ちがうからなぁ……
私の場合、カプセル化はデータと操作をひとまとめにする事という認識。情報隠蔽を含まない。
setter/getterを通じて情報を設定したり取り出したりするものカプセル化といえるけど、他のメソッドもカプセル化といえる。
ググってみつけた解説。
http://msugai.fc2web.com/java/capsulate.html
この手の解説は近年のQiitaなどよりも、2000年前半とかのブログの方が分かりやすい気がする。 動けばよくね?
何でそんなややこしい関数使おうとするの? 動いていても改造困難になるのではないか?
カプセル化しないとか隠蔽しないということは他との依存度が高い事になるから
全部グローバル変数の昔の BASIC みたいになりかねない 隠蔽しない場合、メンテの際に他で呼んでいないかを全ソースにgrepをかけなくて済むくらい? grepぐらいで済むならまだ良い方なのではないかな
a や b 等の短い変数名や同名のローカル変数が沢山使われている場合はそれでは済まないよな 動きゃいいんだよバアカ
教科書に載ってること全部覚えても実戦じゃ使わねえよ
ifとforだけ覚えればok
それで動くからjavaなんだろうが
単純化しなければ他人が見てもわからないし自分が後から見てもわからなくなる
頭でっかちもたいがいにしろや
教授にでもなりてえのか?
バアカ 業務経験2、3年ぐらいはありそうな奴でも>>506レベルの池沼がマジで結構いるのがITの凄いところなんだよな
人件費削減で作業メンバーがこのレベルの池沼で半分ぐらい固められたプロジェクトのソースは完全にゴミのエッフェル塔
どんなに綺麗で保守性の高いソースを書いても改修で池沼が手を入れると全てを壊していくからな
ゴミの状態で膨大なテストを通されるとそれら全てを担保する必要があるから容易にリファクタもできなくなる
ゼロから作っても冗長の塊でゴミだし改修させてもゴミだがこの問題は日本特有の忖度であまり騒がれていない
まぁプロジェクト統括する奴も8割悪いんだが 大丈夫か?コイツ(506)
動きゃいいって、発想の奴は、早いところ現場から排除するに限る。あるいは穴ほって埋めさせる仕事を延々とやらせるか。 >>508
首にするわけにはいかない場合
その手の人間が人事に行って
才能のない奴を採用することになる マイナス方向に動かれるぐらいなら、動かない方がまだ良い。 バカ多すぎて笑いが止まらん
ハライテエ
どうせ高い教材買わされたから難しいコード書くのが芸術とでも思ってるのか
できるだけシンプルにバカが見てもわかるように単純明快にしなきゃ
意味ねえんだよ!!!!!!!!!!!
これ以上わしを笑わせんといてくれや
わしはifとforだけであらゆるプログラマが組めるんや
もう一度言う
動きゃいいんだよ!!!!!!!!!!!! わしがバカだから単純明快じゃないと受け付けない
って事はわかった バカな君たちにもわかりやすい例えしてあげるよ
例えるなら純文学とラノベ
難しい言葉書き並べる純文学は全然売れない
簡単で言葉でわかりやすいラノベはよく売れる
プログラミング市場もラノベ
マニアックな個人ならいくらでも純文学プログラムに挑戦したまえ
ようするに君たちは参考書脳なんだよ
参考書作ってるのは頭のいい研究者で現場プログラマーじゃない
将来君たちは研究者になりたいわけじゃないだろう
だから実戦向きのコード書ける練習したほうがいい
そのためにはifとforだけを極めたまえ
もう一度言う
動きゃいいんだよ!!!!!!!!!!!! なんか色々と、文章力にも現れているなw 小さすぎる宇宙 if や for だけでなく class やメソッド書かないと動く Java プログラムは作れないよなあ・・・ 低能とののしるバカがいるようだが、それは最高の誉め言葉だ。
なぜなら現場では低能でも理解できるコードが求められてるからだ。
君たちはJavoの受験勉強でもしているのかね?
難解な数学の公式を解くようにJovaを覚えても何も意味がないことに、いいかげんに気づきたまえ。
プログラマーに必要なのは知識ではない。発想力だ。
発想力があればifとforだけであらゆるプログレミングができるのだ。
小説や作曲のような芸術的発想力がなければ、もうやめたまえ。
教科書をいくら丸暗記しても、それでは新たなプログラムは組めん。
最後にもう一度言う。
動きゃいいんだよ!!!!!!!!!!!! >>526
そうだと思うよ。
それに少し便利な記述を徐々に加えれば効率も上がる。
時代の流れに乗れず、Cを長年使ってきたが、WindowsアプリでC ++のMFCで仕事して、ラズパイでpythonを簡単な記述のみでやって、それでもGUIなんでpyQtで組む、またWindowsの仕事でドットNetのC#で組んだり、今はスマホアプリを請け負ってAndroid studioでjavaだよ。ラムダ式はあきらめたが、アプリは作れて納品出来る。 >>528
Java書いてて匿名クラス使わないの?
ラムダ式と似たようなものだと思うけど lambda使わないって事は、Stream APIも使わないのかな。それとも、FunctionとかPredicateの匿名クラス書いてStream API使っているとか?
for/ifの人はStream APIなんて使わないんだろうけど。 androidのリスナーグラス登録などの定型には使うが積極的に使う事はない。使えないと言うことだよ。 Javaのラムダ式は対応する匿名クラスへのシンタックスシュガーだよね >>533
いや、実際には無名クラスは作らず、invokedynamicによる呼び出しで処理できるように色々するみたいだな。 Java勉強しはじめるとどこの学習サイトや本でも大体変数周りのレクチャーに際して
int age =20;とした場合
「System.out.println ("私の年齢は" +age+ "歳です");」
「なお、intは上書き出来、後述でage = 23;と書けば同じ変数で違う値を入れる事が出来ます」
みたいに書いてある事が多々ありますが実際にこの運用って使うのでしょうか?
まず最初の疑問が余程大きな桁数でも無い限り(特に年齢や西暦程度なら)数字を直入力した方が作業短縮されるのではと感じるのと
変数上書きに関してもあえて事故る可能性のある上書きより別の変数を用意すればいいだけではと思うのですが
これら二つを最序盤で必ず入れるのは後期で何か意味を持つ使い方になるのでしょうか?それとも不要だとしても一応の機能紹介と運用例を出しているだけ? >>535
そもそも「私の年齢はage歳です」と表示するなんていうプログラム自体が
機能紹介のためのものなのでねぇ
自分でプログラムを作るときは
・数字を直入力した方がよいか? Yes→直入力できるようにする No→しない
・ageに初期値が必要か? Yes→設定する No→設定しない
・ageの値を保持したいか? Yes→別の変数を用意する No→上書きする
なんてことを、自分で考えたり、周りはどうしているかを見たりして、判断することになる
↑これが、サイトや本に書かれていない、一番重要なプログラミングのポイントなのだが
そしてその判断のためには、言語の機能を知らないとならないわけでさ 同じ値を同じ意味で複数個所で使っていて後で修正が必要になった場合は直入力だと全てに修正が必要になって面倒。
尚且つその数が表す意味がわからなくなる可能性がある。(変数名がその数の意味と無関係に付けられていたら同様にわからなくなるが)。
変数の使い回しはプログラムが長くなって来ると混乱してバグの素になると思うので出来ればやらない方が良いとは思う。
特に違う意味の値で使われるような場合は危なっかしい感じがする。また値を変えないで定数として使うのであれば java
ならば final を付けて宣言して変えられないようにしておいた方が良い。その方がコンパイル時に最適化される可能性も高まる。 >>536>>537
なるほどありがとう
後の方でまさかの有効活用方が出てくるための序盤仕込みとかではなく、あくまで勉強本として1から10まで説明しなければいけない的な拡張機能の解説で合ってたのね
もしかしたら修正する可能性がある項目を変数化しておくというのも実用的だし、変数上書きは余りしない方が良いという部分のアドバイスも聞けてよかった Androidアプリ関係の質問てここであってますか? 浅いコピー深いコピーって概念がよくわからないんですけど
深いコピーをしたいオプジェクトやリストがあればその中身や型に合わせて
それぞれ専用のメソッドをその都度自分で書かないといけないってことですか? >>542
lisp 用語だから lisp をやればわかる… >>542
つ https://medium-company.com/ディープコピーとシャローコピーの違い/amp/
簡単に言えば浅いコピーは参照?が指している場所が同じ状態でのコピー
obj1 = obj2 のような状態
深いコピーはご自分で言っているように別のオブジェクトとして生成してフィールドをコピーしている状態 >>542
だいたい合ってるけど専用のメソッドが必要になるのは浅くても深くても同じだよ
ただ浅い場合は1段でいいから楽なだけ
深い場合は型と型の組み合わせになるから組み合わせの数が無数で書く量が増える windowsでいうと
浅いコピーは「ショートカットの作成」
深いコピーはフォルダーのバックアップ >>546
フォルダーの中にショートカットが入ってたら? >>542です
返答ありがとうございます
とても参考になりました 昔Javaを触ってたけど、しばらく離れてた(テンプレートやアノテーションが出る直前)
最新のJavaを学びなおそうと思っているんだけど、おすすめのサイトor書籍を教えてください
ただし、オライリーは嫌いなのでパス >>551
サンクス
でもどうせなら最新を
>>552
独習Javaは昔見たことあるけど、あまり印象に残ってない >>555
吸盤独習Java なんて忘れたほうがいいですよ、ハーバード・シルトの本にしなさい… 質問です
乱数を得るための方法は主にjava.util.Random()またはMath.random()の2通りあると思うんですが
なぜjava.util.Random()の方はMath.random()と違ってstaticではないのでしょうか?
それとint x = Math.random(n, m); でn以上m以下の整数を得るみたいにしたいんですけど
これを実現するには自分でメソッドを用意する必要がありますか? 学校の課題かな?
ランダム値生成のアルゴリズムは最初にシードを与えて値を複数回取り出すという内部状態を保持する操作なのでstaticは合わない
またサブクラス化してアルゴリズムを置き換えられるデザインになっている
クラス設計に慣れないうちはstaticが便利に感じるけど、後からMathのアルゴリズムを置き換えたいと思い立ったときにStrictMathのような似て非なるクラスを作るハメになったりする
整数を得るのはメソッド作るのがいいね
掛け算してから端数を切り捨てて最後に最小値を足す >>559-560
返答ありがとうございます!
大変参考になりました コンピューターはランダムというのが苦手ですからね。 確か、Java の乱数は、線形合同法だから偏るだろ
Ruby のRandom は、メルセンヌ・ツイスタ・MT19937、
SecureRandom は、/dev/urandom または、OpenSSL MTも200個くらい連続して同じシードの値を取得できれば次を予測できるとか C++は選んで組み合わせ。
テンプレートでスタティックに。 javaからjnaでcのdllを呼び出した時のmain()ってjna側に取られてるんでしょうか?
main()からしか正常に扱えないライブラリを使おうとしていて、困っています。
ラッパー噛ませても何でもいいですので、jna呼び出しでc側のmain()をハンドリングする方法があれば教えてください。 main()からしか正常に扱えないライブラリ?
どういうライブラリだそれ? 質問です
JavaSE11Silver黒本の204〜205ページにあるメソッドの可変長引数の解説で
(int... num, int value)のように宣言するとどこまでが第1引数でどこからが第2引数なのか判断できませんが、
(int value, int... num)のように宣言すると第1引数と第2引数以降が区別できます とありますが、
可変長引数が複数ない限り前者のパターンでも第1引数と第2引数は区別できる気がするんですけど
先に位置が確定してる引数を当てはめて残りを可変長引数として処理するみたいな逆算はできないってことでしょうか? できるよね
原文読んでないけどたぶん説明が良くないんだと思う
単にシンプル志向なので可変長引数は最後の引数でしか定義できないという言語仕様なだけだと思う
途中に置けるからといって変なところに置かれてもスゲー読みにくいし保守しにくい >>570
返答ありがとうございます
納得できました intellJでjava Enterprise プロジェクトを作成したんですが、サンプルページのHello ServletのURLクリックすると要求されたリソースが〜の404エラーになります。
javaファイルが読み込めてないっぽいのですがファイルの配置が悪いのでしょうか?
アプリケーションサーバーはtomcatです。
どなたか教えて下さるとありがたいです。 そんなマイナーなIDEは誰も使ってないから知らんわあほ スッキリの次はどの本読んだらいいか教えてくれませんか? スッキリのservlet編か
その次はspringあたりか >>575
ECサイトを見てみます
ありがとうございました StreamAPIについて質問です
一つのStreamに対して終端処理が1回しかできないのはどういう理由からなのでしょうか?
共通の中間処理に対して複数の終端処理を行いたい場合一旦Collectionに戻してから
それぞれの終端処理に対して再度.stream()で再変換するのが手間に感じるのですが >>577
minとmaxなんかは両方呼びたいという感覚はわかる
でもfindFirstとreduceは共存できない
findFirstを先に呼ぶと要素が見つかったらストリームが終了してしまうし、reduceを先に呼ぶと一つにまとめられてしまう
Streamの仕組みとユースケース的に妥当
共存させるための一般化した方法は二つ思いつく
一つは終端処理の直前で器に一旦溜め込むやり方
まさにcollectで終端させることと同じ
varとStream.toList()が使えれば多少は書きやすくなる
もう一つは複数の終端処理を引数にとり、すべての処理の気が済むまで委譲するという終端処理を用意すること
調べたらCollectors.teeing()というメソッドがJava12から導入されてた模様 >>577
ストリームだからとしか。
Streamの元が、もしかしたらネットワークの向こう側から順次流れてくるデータかもしれないわけで、そうなると一度読み取って処理した値をもう一度使うにはメモリ上に溜めておくとかしないといけない。なので、一度Listにするとかが必要になる。 https://udemy.benesse.co.jp/development/system/java-if-else.html
>>Javaでネスト(入れ子)したif文の使い方
>> if( num1 > 5 ) {
>> System.out.println("5〜15の間");
×:(num1 > 5)
○:(num1 >= 5)
×:udemy
○:usomy
Java以前の問題 >>578-580
返答ありがとうございます
とても詳細で解りやすく仕組みまで含めてすんなり理解できました 多態性について質問です
https://paiza.io/projects/UevdJ8eMt3M3RHe7IEHBPQ
上のコードで、24行目のa.method();を実行した際に、
なぜサブクラスのメソッドが呼ばれるのか分かりません
確かに参考書にはそう書いてあるのですが、21行目のA a = b;を
実行した瞬間に変数aはサブクラスの情報がそぎ落とされてしまうような気が
するのですが… >>583
スーパークラスだからイメージがわかないのかもしれないけどインタフェースでイメージしたらわかりやすいかな
インタフェースは実装を持たないけど左辺の型としては使えるよね
だとしたら実装はどこになるのかといったら右辺のインスタンスにある
これも同じで左辺はスーパークラスの型だけど実態は右辺のインスタンスだから動くのも右辺のインスタンスの処理 >>584
レスありがとうございます
ではサブクラス型の変数をスーパークラス型の変数に代入する時には、
サブクラスとしての情報は残したまま代入されるという解釈でよろしいでしょうか? Aに代入したからといってBがAに化けるわけじゃないよ
BをAとして認識するというニュアンス
例えば車両クラス(A)から派生した戦車クラス(B)のインスタンスをnewで一台生産したとする
戦車(B)であると知っている上官が前進しろと命令したら運転手はキャタピラで進む
ただの車両(A)としてしか認識してない交通整理員が前進しろと命令しても同じようにキャタピラで進む
動作するのはあくまでnewされて実体を得た本人
ただし車両としてしか認識してない人からしたら、砲撃メソッドを実装していることを意識してないので呼び出せない
でも車両クラスのメソッドをどう演じるかは本人の実装次第 おそらく変数に代入っていうイメージが間違ってる
参照型のイメージができてなさそう >>588の続き
参照型はイメージ的にはC言語のポインタみたいなものかな
実際には別物だけど
変数よりは近い >>586-589
ありがとうございます
難しいですね
確かにその辺りの理解はあやふやになっています…
結局、先の例では、スーパークラスA型の変数aがサブクラスB型のインスタンスbを
参照する時、Bでオーバーライドした(元々Aで定義されている)メソッドは、
Bに基づく動作内容で呼ぶことになり、Bで新しく定義した(Aにはない)メソッドは
aからは呼べなくなるってことですよね? >>590
Eclipseとかのエディタのコード補完(.を打った時に呼び出せるメソッドが出てくるやつ)では
A型として識別されるからaからは呼べないように見える。 途中で投げてしまったすみません。
だけど、実態としてはあるからリフレクションであれば呼び出せる。 >>590
> >>586-589
> ありがとうございます
>
> 難しいですね
> 確かにその辺りの理解はあやふやになっています…
>
> 結局、先の例では、スーパークラスA型の変数aがサブクラスB型のインスタンスbを
> 参照する時、Bでオーバーライドした(元々Aで定義されている)メソッドは、
> Bに基づく動作内容で呼ぶことになり、Bで新しく定義した(Aにはない)メソッドは
> aからは呼べなくなるってことですよね?
大体合ってると思う
ただ、> スーパークラスA型の変数aがサブクラスB型のインスタンスbを の部分が違う気がする
あまり詳しくはないけど、まずnewで生成したオブジェクトのアドレスに相当するものがaに入る
そして、そのオブジェクトの動きはnewした方のクラスから見たものになる
だけど、動かすことのできるメソッド等は「親クラスにあるものだけ」になるね
継承した後のクラスは直接動かせない
もちろん、メソッド内で間接的に呼び出すとかなら可能だけど
簡単に言えば、mainメソッドとかのオブジェクトを動かす方からすれば「親の方で考える」ってこと
上のやつだとAの方にあるものだけ使える
デザインパターンのFactoryパターンのように、生成するメソッドで生成するって考えるとわかるかも >>591-593
ありがとうございます
>>593
えーとですね、俺頭が弱いので全部は理解出来なかったです… >>594
うーん、別に頭の良し悪しじゃなくて、単にイメージがしづらいだけじゃないかな
概念的なこと聞くより手を動かした方がいいかも
俺もいろんなとこで聞いたけど理解できずに、デザインパターンをやったりいろいろ工夫して手を動かしたらすんなり理解できるようになったし
まずデザインパターンのFactoryパターン辺りをやってみて?
Parent obj = new Child();
という生成をFactoryパターンでやると、
Parent obj = Factory.Create();
のような感じになるはず
そしたらこのobjを動かす方は内部でChildでnewしているかどうかは見えないよね?
単にParent型である保証しかされてない
でも言い換えると「Parentにあるメソッドはと持ってる」だよね?
実際の処理はオブジェクトであるobjが知ってるからobjに紐付いているメソッドを動かす
オーバーライドしてる場合は直近の「自身で再定義した方」
と解釈され、オーバーライドされてない場合は直近の「親の方」と解釈される
だって「自身で再定義した方」はないからね
そしてobjを動かす方からすれば(Childでnewしていようと)Childかなんてわかんない
だからChild独自のメソッドは使えない
もちろん、C#だとasとかでキャストしたりすれば(Childで生成しているなら)Child独自のメソッドも使えるけどね
FactoryMethodパターンはFactoryパターンの拡張版だからFactoryパターンを理解してみて) >>595だけど、すまん
C#じゃなくてJavaだったね
asみたいなキャスト をダウンキャストして とかみたいに読み替えてね >>598
文脈次第だとは思うけど「変数や配列のこと」だと思う
Stringとかみたいな イメージ的にダムとかコンデンサとかみたいな何かを貯めておくものを指すよ
ダムに水を貯めておけば日照りが続いても安定して水が飲めるし、川上が増水しても川下の村が水浸しにならない
しょぼい乾電池でも電流をコンデンサに貯めれば強烈なフラッシュを炊ける
プログラミングの場合も同じ
典型的には、ネットワークから受信したりプログラムで動的に生成したデータをファイルに書き込みたいときとか、互いの読み書き速度が違う2つのデータの流れがあるとき、互いの性能差を埋めつつ資源を有効活用する(読み書き回数を減らしたり専有時間を最小化する等)ときとかに使う 例えばファイルを読み込むときにFileStreamのバッファサイズが1Mだと
ディスクから1M読み込んで処理してまた1M読み込むから効率が悪くなる。
バッファサイズを100Mにすればディスクから100Mまとめて一気に読み込むから効率が良い。
でも、その分メモリを消費するから性能とメモリのトレードオフ。 java初心者です。初案件でjavaのマイグレーションとのことで入ることになりました。
現状これ以上の情報がまだはいっていません。
Javasilverは独学にて取得済みです。
これって経験としてどうなんでしょうか。どなたか教えて頂きたいです。
よろしくお願いします。 >>604
そもそもマイグレーションって何だかわかってますか? >>605
ありがとうございます。
いえ、あんまりわかってないです。ネットで調べた程度で
活用中のシステムを別の環境やバージョンへ「移行すること」
だそうで、リプレイスとは違うとかなんとか。
現行のシステムから移行計画をたてて、テストして、本番環境
に切り替える程度の認識です。
これって上流工程なのかテストもあるし、そんなにスキル
がつくのかもわからないです。
一応まだ断ることもできるんですが、
何かしらアドバイスいただけたらありがたいです。 Javaのバージョン上げるだけとかならそれなりに出来ることありそうだけど
それ以外ならテスター要員だろうな 到達不能コードのコンパイルエラーについて質問です
JavaSE11Silver黒本の3章18問に下記のコードの結果を答える問題があり、答えは「Cが表示される」なのですが
このときnum = 10ならば必ずCが表示され、Dは絶対に表示されないため
到達不能コードでコンパイルエラーが発生する気がするのですが
ifの判定文まで到達可能ならば例えばif(false)であってもその中身は到達不能コードには当たらないのでしょうか?
int num = 10;
if (num == 100)
System.out.println("A");
else if (10 < num)
System.out.println("B");
else
if (num == 10)
System.out.println("C");
else
if (num == 10)
System.out.println("D"); そういう仕様のはず
テスト的に処理の冒頭で例外を起こしたいとき if (true) throw Exception(); みたいに書ける >>609-610
返答ありがとうございます
自分でコードを書けばエラーが発生するかどうかは明らかですが
試験でunreachable codeが発生するかどうか問われた時は内容次第なので
状況毎に暗記する必要があるということですか? 解らない問題に答える必要あるの?
経験者むけサービスかもよ? 素直に言語仕様読め
ttps://docs.oracle.com/javase/specs/index.html
ttps://docs.oracle.com/javase/specs/jls/se17/html/jls-14.html#jls-14.22
> 14.22. Unreachable Statements
>
> It is a compile-time error if a statement cannot be executed because it is unreachable.
>
> This section is devoted to a precise explanation of the word "reachable."
> The idea is that there must be some possible execution path
> from the beginning of the constructor, method, instance initializer, or static initializer
> that contains the statement to the statement itself.
> The analysis takes into account the structure of statements.
> Except for the special treatment of while, do, and for statements
> whose condition expression has the constant value true,
> the values of expressions are not taken into account in the flow analysis. >>612-613
ありがとうございますとても参考になりました
規則をよく読んで理解を深めたいと思います >>607
ありがとうございます。なるほど、
テスター要因ですか。
今のところ言語をJavaへ変更するとのことで
バージョン上げるではなさそうです。 >>611
そんな細かいところまで覚えなくても試験受かるよ >>607
>>606はテスターも務まらないだろう。
奴は自分が楽をするために結果を捏造するでしょう。 質問です
https://paiza.io/projects/b4a4wtvE8DNSwj1jy0ciTg
上のコードの7行目の出力結果がab, aになる理由が分かりません
str2はstr1と同じものを参照しているので、str1の参照先が変われば
str2の参照先も変わると思うのですが こういうC/C++のポインタ、文字列定数、newとかの理解なしにJavaだけやろうとすると間接参照の構造が理解できなくて分からんくなるよね
JavaのStringクラスはイミュータブルといって内容を途中で変更しないポリシーになっている
正しいかは知らんけど下記のような意味になる
String str1=new String("a");
String str2 = str1;
str1=new String(str1 + "b");
文字列結合演算子は新しいStringクラスを生成する
str1とstr2は結果として異なるものを指しているのでab,aとなる str2
str2 = str1 の時点で新たな領域を確保してるんじゃないかな
str2 = str1 の直後にデバッガで str1 の値を変更しても st2 の値が変わらない
文字列の足し算をしたときに str1 が別の領域を指すようになるというのはその通りだけども 間違いでした。str1 に文字を足した時点で str1 が別の領域を指すようになるが正しいですね。失礼しました。 > 同じものを参照しているので、str1の参照先が変わればstr2の参照先も変わる
これが誤解
参照先が一緒に変わることはない
もしそんなことが起こる言語仕様なら、一時的に同じものを参照させていたけど、後からまた別々のものを参照させたい、という操作ができなくなってしまう >>619-622
回答ありがとうございます
>>618のコードの4行目ではstr1とstr2は同じアドレスを参照していて、
6行目でstr1の参照先だけが変わり、str2は変わらず同じアドレスを指している
という理解でいいですかね?
https://paiza.io/projects/5peEJB86LZ16u2cgEFvEgA
int型変数の場合も同じような挙動になるようですね >>623
プリミティブ型は値そのものを持っているから
そのレベルなら基礎の本を最初に読んだ方がいいと思う スレチだったら申し訳ないのですが、imgui-javaをM1 macで使うことって可能でしょうか?
githubのissueに「I won't support it macOS arm64」とあるので既にダメそうではあるのですが…
issueで報告されているエラーではなくCan't load library: libimgui-java64.dylibというエラーが出たのみだったのでどうにか解決できないかなと感じてます try{
処理
} catch(ArrayIndexOutOfBoundsException e){
処理
} catch (IOException e) {
処理
} finally{
処理
}
上記のプログラムで
ArrayIndexOutOfBoundsExce
IOException
を問わずexceptionが発生したら実行したい処理があります
何か良い方法はありませんでしょうか
catchは処理の都合でわざと分けています 共通処理をprivateメソッドに切り出して双方から呼ぶ >>628
3個目のcatchにException eとすれば? >>628,624
ああ、そういうことね
IOExceptionとかの親(継承や実装する前のやつ)で受け取ればいいはず >>630
exceptionは共通して処理したいんですよ
種類に関わらず
ioとか決まったのは一部処理を追加したいのです >>628
>>629の方も書いてますが、例外処理用にメソッドを用意しておいて
双方のcatchブロック内で呼び出すのが良いのでは? >>634
やっぱそうだよなぁ
俺でもそうするかも
フラグを保持してIOExceptionのときにtrue,デフォではfalse
finallyでフラグが立っているときだけ独自の処理
かなぁ } catch(ArrayIndexOutOfBoundsExce | IOException e){
if(e instanceof ArrayIndexOutOfBoundsExce){
} else if(e instanceof IOException){
}
/*
共通の処理
*/
} いやこんな問題にフラグはやめようよ…
脱初心者しようぜ
if文なしで表現できるコードにif文を使わないのは可読性維持のセオリー
関数の各種メトリクスが改善する
finallyの中に置くのもやめよう
それが本質的にfinallyに書くべき処理でない場合は書かないでくれ
その例外処理の中でさらに例外が出たときに、本来必ず実行されるはずだったfinallyのリソース解放などが実行されなくなってしまう 変数の数を減らす、if文を減らす、どっちも改善の定石なんよ
フラグは手っ取り早く動くコードを書くのに便利だけどgotoのようにスパゲッティを招く諸刃の剣 >>637,639
え、catchするときって、複数の例外ってできたんだ…
(本当に知らなかった)
それができるのならそっちを選ぶかな
639が言うようにできるだけ変数を減らしたりするのがベターだろうけど、catch( MyEx | TestEx e ) 的なものができること自体知らなかったからC#みたいに別の例外でラップして再送するか、finallyで分岐させるかしか思いつかなかったわ…
複数例外をcatchできると知っていたらそっちの方を書いていたかも catchは処理の都合でわざと分けてるって言うからマルチキャッチは知ってて使えないケースのお題かと思ったわ
privateメソッドに切り出すのは何が嫌なんだろ
複雑化する感覚があるのかな サンプルだからなのかもしれないが
IOExceptionとIndexOutOfBoundsの2つだけを一つのcatchにまとめるのは種類が違いすぎてかなり違和感がある JavaSE11から存在する単一のソースファイルならばコンパイルを介さずに
>java Main.javaで直接起動できる機能についてお聞きします
下記のページの解説だとソースファイルと同名のクラスファイルが既に存在している場合には
エラーが出るとあるのですが、自分で試してみたところMain.classが既に存在する場合でも
>java Main.javaで直接起動してもエラーが出ずに正常に終了します
自分の解釈が悪いのか仕様が変更になったのか教えて欲しいです
https://openjdk.java.net/jeps/330 ttps://pastebin.com/auZDmFp7
矢印キー(上か下)を押下した際に、道路の幅がズレる(滑らかなでない)状況です。
y座標の計算に問題があると思うのですが、どのように修正したらいいのでしょうか?
drawPolygon()は整数をとるのでdoubleが使えない状態です。 >>649
再度アップロードしてみました。
ttps://pastebin.com/28pAYitY Threadクラスについて質問です
volatile修飾子とsynchronized修飾子の使い分けがよく分かりません
どなたか教えて頂けませんか? volatileは排他制御されない。スレッド間でのメモリの同期はとられる。
synchronizedは排他制御される。 synchronizedだけ使えばいいよ
性能改善の必要に迫られたときだけ、元からアトミックな処理という前提下でvolatileに置き換えできるケースがあるけど、まずそんなシーンはない
予めオブジェクトを生成しておいてconcurrentパッケージのクラスを使うほうがいい >>652-654
分かりました
ありがとうございました >>650
ざっと見た感じだけど
ybl = y + h +(int) ((i+1)<gradients.length ? gradients[i+1] * gradient : 0);
ybr = y + h +(int) ((i+1)<gradients.length ? gradients[i+1] * gradient : 0);
あと↓みたいにすればxtlとかdouble使えると思う
g.drawPolygon(new int[] { (int)xtl, (int)xtr, (int)xbl, (int)xbr }, new int[] { (int)ytl, (int)ytr, (int)ybl, (int)ybr }, 4); >>656
ありがとうございます。
教えていただいた方法で実装してみます。 質問です
JavaSE11黒本の12章47問で複数の数式から一つを選択する問題がありますが
そのうち正解となる選択肢Aと選択肢Cが常に同じ結果を示すように見えて違いが解らないです
選択肢A : a = b * (c * Math.pow(1 + c, n) / (Math.pow(1 + c, n) -1));
選択肢C : a = b * c * (Math.pow(1 + c, n) / (Math.pow(1 + c, n) -1));
Javaでは浮動小数点が絡んだ場合に誤差が生じる可能性があるため
乗算は非可換であり明確に区別されるという規則があるのでしょうか? 誤植か筆者がバカなんじゃね?
計算順によって結果が変わることはありうるけど、別にどちらが正解でどちらが間違っているということはない ああ、値のオーダー次第では適切な順序で掛け合わさないと指数がオーバーフローするケースはあるかもな
>>658の情報だけじゃ分からんが >>660
確かに値の範囲がある以上計算順も厳密に考慮しなければならないですね
ありがとうございます納得できました >>659 は数学のルールでものを語っているが、プログラミング言語の世界では、計算順序は決まっているので、複数の答えがあるはずがない。 お聞きしたいことがあります
らくらく突破Javaの本文中で、インスタンス変数(のスコープ)はその変数が属する
クラス内にある「全ての」メソッド内で有効、という記述があったのですが、
これは正確ではないですよね?
クラスメソッド(staticメソッド)内で利用するとコンパイルエラーになる、
とスッキリJavaに書かれていたような気がするのですが >>664
問題文が言葉足らずで解釈が割れるのは普通だから。 英国では、富士通の郵便局のシステムで、
700人以上の郵便局長が有罪になっている
計算が合わないから、盗んだだろって
イギリス史上最大の冤罪事件
計算順序・誤算などは危険 インスタンス変数は、各インスタンスで固有のもの
一方、クラスメソッドは、そのクラスで使われるもので、
すべてのインスタンスで共有されるのかな?
または、そもそもインスタンスを作らなくても呼び出せるものかも?
単なるモジュール関数で、インスタンスとは結びつかないものかな?
どちらかは知らないけど >>667
同じロジックのコピーを作るわけがない。少しはコンピューターの仕組みを理解してくれ。 >>667
俺の理解では、メソッドはC言語でいう関数ポインタ的なやつでオブジェクトに紐づいている感じ
staticなメソッドはなんだろうな…C#とかでいう名前空間に包まれたメソッドかな? 単純にクラスに紐付いているという理解でいいよ
インスタンスが0個だろうと関係ない >>671
違う。インスタンスメソッドもクラスに紐付いている。
同じクラスから生成されたインスタンスなら同じメソッドを持っているのだから、各オブジェクトにポインタを持たせる必要はない。
オブジェクトの型を調べてその型の関数テーブルを見に行けばよい。 >>672
>同じクラスから生成されたインスタンスなら同じメソッドを持っているのだから、各オブジェクトにポインタを持たせる必要はない。
virtual ... 各オブジェクトにはクラス毎にある共有のクラスデータへのポインタ1つ持ってるだけ
各クラスデータにクラス名とか関数ポインタ並べた関数テーブルvtableは1つで共有すれぼいい
各オブジェクト毎にいちいち関数ポインタ全部をメンバで持たせる意味はない
これだと単純にリフレクションで特定のオブジェクトの特定のメソッドだけ差し替えるとかできないけど知らん
関数ポインタと関数テーブルをごっちゃにすると話が分からんことになるぞ >>675
>各オブジェクトにはクラス毎にある共有のクラスデータへのポインタ1つ持ってる
ということは、
>>672
>各オブジェクトにポインタを持たせる必要はない。
は間違いですよね…
そして Java はデフォで virtual だし… レスくれた方ありがとうございます
お礼が遅くなってすいません >>676
言ってることは一緒だよ
オブジェクトは「型情報」を持っていて、それはクラスの共有情報へのポインタと考えることもできる
そしてvirtualを気にしているようだが、オーバーライドされてようが同じクラスのインスタンスなら呼ばれるメソッドは同じだろ?
だからクラスが関数テーブルを持ってりゃ十分なんだよ インタンスメソッドが実際にどういう持ち方をされてるのかっていうのは割とどうでもいいよ
そのへんはシームレスに使える
必要に迫られたら学べばいい
元質問はメンバ変数のスコープに関する話なのでもっとずっと初歩でシンプルかつ大事 変数のスコープの話だと思ったのは、質問者がそう思い込んだだけだけどな。 クラスにfinalを付けて宣言してもメンバ変数に代入が許されてしまうのは何故ですか。
メンバも代入禁止にする方法はないですか?
ただしもちろんfinalつけずに変更しながら使う場合もあるのてメンバ変数自体をfinalで宣言するのは不可です。 >>682
メンバ変数にfinal付ける。
publicと同じ。 >>682
フィールドへの代入を禁止したいけど、変更して使うこともあるって、どういうこと?? >>682
ちな、クラスへのfinalは継承を禁止するものなので、フィールドの値が変更不可になるわけではない。 >>684
例えば、publicなフィールドx,y,zを持つ3次元座標を表すクラスHogeがあったとして、
通常は座標値を弄るのでフィールドをfinalにするのはできないのですが、
不動の座標値を使いたい(例えば、原点の0,0,0など。)時に、Hoge型の定数のように宣言したいです。
//↓フィールド変更不可
final Hoge ZERO = new Hoge(0,0,0);
//↓自由にフィールド変更可能
Hoge point = new Hoge();
みたいにしたいです。
要するにc++のconst的な宣言の仕方をしたいです。 定数になるような型ならメンバ変数をfinalにしてイミュータブル(不変)なクラス設計とするのがベストプラクティス
値を変えたくなったら別のオブジェクトをコピーして返す
Stringクラスと同じ考え方
最近のJavaで導入されたrecord型もそういう発想で不変しか用意されてない
オブジェクトが増えるので性能が気になるかもしれないけど有意差にならないことも多い
可変にするとキャッシュも定数化もできないから性能面でのデメリットもある
どうしても可変な値がないと処理効率が悪すぎて性能目標がクリアできなくなるほどの処理があるなら、StringBuilderのような可変クラスを別で用意してもいい
可変と不変のクラス間でCharSequenceのような読み取り専用のビューを用意するとなお良い
メンバ数が多すぎてコピーがしんどいなら定数になるべき部分だけを切り出して不変にしてメンバで持たせる JavaにC++のconstみたいな機能は無いですね。
↑の人も書いているけど、イミュータブルな型として定義するのが良いかと。 >>687
分かり易い解説ありがとうございます。
なるほど理解しました。 クラスに定数を持ちたいのは理解できるが、実装を知らずに使う側からすると、ただのひっかけポイントだよな。 datファイルの中身をFileChannelを使って、高速にテキスト出力しようとしているのですが、
どのようにしたらいいでしょうか?
ttps://pastebin.com/zH6dKeCr java.nio.file.Files.copy() 使えば? 最新版のPleiades一括置換できなくなってない? java1.8でtimestamp型にstring型で持ったマイクロ秒を入れたいのですけど
どうやれば良いのでしょうか?
20220413184698123456
とstringでは持っています >>694
"2022-04-13 18:46:00.98123456" に加工してからTimestamp.valueOf( ) に渡す String timestr = "2020041321234512345678";
System.out.println(
Timestamp.valueOf(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSSSSSSS").parse(timestr, LocalDateTime::from))); 適当
そもそも >>694 の ...184698123456 がよく分からんし
18:46:??.9812...? ベンダー資格ってjava認定試験よりもオラクルのほうが主流な感じですか? アンドロイドアプリをつくりたいんだけど、
すっきりわかるシリーズのJAVA入門(実践編じゃない方)
を読了した程度でアプリ開発に進めますか? おう進め進め
いろいろと躓くこともあるだろうけど、都度、解決していくのが一番の近道
参考書読んでるだけじゃいつまで経っても成長しないぞ >>701
>>702
レスありがとうございます。
大変参考になりました。 >>698
おそらく数値で過去・未来の判定をしてるんだと思う。初心者がやりがちな変なやり方。 >>705
それはわかった上で、普通に詰めると18:46:98.123456になっちゃうから、98秒ってなんだよ、ってことかと。 >>706
この話ただの書き間違いじゃないの?
78は何処から持ってきたんだよとツッコんだつもりがミスってたのは質問者自身だったとかいうオチで、バツが悪いから本人の追加コメントがなく話が終わったものかと STS4使ってます
mavenビルドで、一向に処理が終わらない
ずっと処理中のメッセージ(ログ)がグルグル上下に流れてる
同じような人いますか?? 原因は何でしょうか? スッキリわかるJavaとらくらく突破Javaを読んだのですが、
基本情報技術者試験のJavaの問題が解けません
どなたか助言を頂けないでしょうか? 基本情報のJava問題はJava自体というよりアルゴリズムについての問題だろ?
Javaだけ勉強してても無理だよ
Javaはしばらく忘れてもいいからちゃんとアルゴリズムの基礎を学ばないと String inputFilePath = "D:\\Java\\test.dat";
bis = new BufferedInputStream(new FileInputStream(inputFilePath));
を実行したところ、
java.io.FileNotFoundException: D:\Java\test.dat (The filename, directory name, or volume label syntax is incorrect)
とエラーがでます。
ファイルは指定した場所にあるのですが、なぜでしょうか? 自己解決しました。
D:\\Java\\test.dat"の「¥」が一つ多かったようです 実はファイル名が test.dat.txt になってて、拡張子が非表示になってるとか java.util.RandomのnextDouble()が0から1の乱数を返すのではなく、nextInt()のように引数で範囲指定できる実行環境ってありますか? >>717
その程度の算数ができないなら今すぐプログラミングやめたほうがいいぞ Kotlin の kotlin.random.Random にはあるな。 インプレスのSEOによって、通販サイトで「Java」で検索すると
大体「スッキリわかるJava」という本が上位に来るようになってますよ クリントン大統領の「不適切」というのは、チンポが独立して主体意思でシコシコしてしまったから。
チンポは独立した生き物であり、アメリカ大統領の権限をもってしても、制御することは不可能だ。
クリントンの「不適切な関係」
https://eigo-kobako.blog.so-net.ne.jp/2008-06-21
class チンポ extends クリントン{
super.不適切な関係;
}
クリントンーーーーーーーーーー
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
ーーーーーーーーーーーーーーー
┃チンポ┃
 ̄ ̄ ̄ ̄
『人格を性欲に乗っ取られる』、つまりクリントンはチンポに人格を乗っ取られて、チンポにシコられてしまった! 2008年、平山尚のセガ本「ゲームプログラマになる前に覚えておきたい技術」は、賞も取ってる有名な本で、
C++・オブジェクト指向・3D プログラミングの3つを、
1冊で解説しようとしたが、難しすぎて失敗に終わった
2011年「スッキリわかる Java入門」が、
Java・オブジェクト指向を1冊で解説して、大成功を収めた。
その結果、スッキリはシリーズ化されて、様々な言語・技術に波及していった
業界人の座談会でも、よくスッキリについて語られる。
分かりやすく解説するために、膨大な数のイラストを膨大な費用を掛けて作った
今でもこの武勇伝と、オブジェクト指向を日本に定着させた偉業は、伝説になっている スッキリ分かるjavaの実践編ってjava資格シルバー、ゴールドのどのあたりに近いですか?
自分は今入門編をギリギリ理解できるかできないか繰り返し読んでいますがjavaブロンズに達してないと思っています。
そこで本屋で実践編を見てなんだこれは…となりまして、シルバーあたりが一番ちかいのでしょうか?
シルバーとゴールドの中間くらいでしょうか? 実践編はゴールドにも出ないことが書いてあるね
文字通り「実践編」なわけで なるほど!有り難うございます!
javaシルバーなどの合格体験記を読むと黒本、紫本など多く出ていたので、実践編はしばらく無視で
まずは入門や黒紫あたりを頑張ってみます!有り難うございました! ただブロンズはパズルみたいな問題が多いので
実践的かというとちょっとなあ
わざとインデントを間違えてあったり
(エディタのフォーマットを使えばすぐわかる)
結果がどうなるかを問うたり
(動かしてみた方が早いだろ)
とか
資格試験だからしょうがないといえばしょうがないけど 動かしてみた方が早いってのは程度問題じゃね
ほとんど頭に入ってなくて何でもいちいち動かさないとわからないんじゃ、書かれたソースを読むこともままならないし、書いたソースもバグだらけで実践的な開発力は不足してる
マニアックな挙動については丸暗記しなくてもいいけど、そんな問題ばかりというわけでもあるまい 2016/9、最強のJava入門書はどれか?
https
://ascii.jp/elem/000/001/238/1238080/
矢澤久雄「プログラムはなぜ動くのか」、高橋征義「たのしいRuby」などのベストセラー著者と、
業界人などが「スッキリわかる Java入門」について座談会
スッキリJavaは、オブジェクト指向を説明するという、明確な目的を持って作られた本。
そこが他の入門書と、大きく異なる
オブジェクト指向の本は、726 に書いたように、平山尚のセガ本と2冊しかない。
デザインパターンと言えば、Ruby だけど、Rubyにもオブジェクト指向の本はない batファイルからjarファイルを実行し、そのjarファイルの中ではpowershellのスクリプトを呼び出そうとしていますが、どうもそのスクリプトが呼び出せていないようです。
コードを書き込もうとしたらエラーが出るため、こちらにコードをのさせてもらいました。
ttps://pastebin.com/132WU7Py
commandはどのように記載すればいいでしょうか?
PowerShellのスクリプトは
Param($csvPath)
function openSesame($csvPath) {...}
openSesame $csvPath
です。 ちゃんと読んでないが、少なくとも
String command = "powershell.exe \"" + scriptPath + scriptName + "\" \"" + csvPath + "\"";
にしないと、じゃない?
Runtime.exec(String[]) 使ったほうが良いと思うけど あと見落としてたけどcsvPathのバックスラッシュ(円マーク)は2重にしないとダメ
(コピペしようとしたらバンされた) ありがとうございます!
Runtime.exec(String[]) は
Runtime.exec(String[] {
"powershell.exe",
"\"" + scriptPath + scriptName,
"\\",
\"" + csvPath + "\""
});
でやってみようとおもいます。
ちなみに、csvPathのバックスラッシュ(円マーク)は
scriptName + "\\" \"" + csvPath + "\"";
であっておりますでしょうか? 違う
「"」(ダブルクォート)が誰のために必要かを考えたほうが良い
Runtime.exec(String[])を使うならこんな感じ
あと PowerShell にスクリプトを渡すなら -File 引数が必要だし、セキュリティポリシーで許可されているか署名済みスクリプトでないと実行できないはずだけどその辺は大丈夫?
Javaの話じゃないし良く知らんから深入りはしないけど
https://pastebin.com/TyT89irG ありがとうございます!
今のところ、javaとスクリプトの実行は出来ているので大丈夫かなと思いますが、セキュリティポリシも確認いたします。
検証用環境が不安定なため、再構築して実施してみます。
重ね重ねありがとうございます。 例えば、Ruby スクリプト内で、7-zip をコマンドとして呼び出して、
解凍せずに、アーカイブの内容を確認する場合、
Windows のProgram Files には半角空白が含まれるので、
"〜" で囲まないと、半角空白の前後で区切られてしまう
その場合、コマンド呼び出し、%x( ) 内にも、
%x("〜")と、"〜"で囲む必要がある
また、Windows のパス区切りは、\ だけじゃなく、/ も使える
# Program Files には半角空白があるので、要注意!
ZIP7_EXE_PATH = "C:/Program Files/7-Zip/7z.exe"
archive = "C:/Users/Owner/Documents/a.zip"
# Program Files には半角空白があるので、"〜" で囲む
# 解凍せずに、アーカイブの内容を確認する。l(list)
puts %x("#{ ZIP7_EXE_PATH }" l #{ archive }) // for文使った関数定義で質問です
var obj = {};
var arr = [ 'left', 'top', 'width' ], a;
for( var i = 0 ; i < arr.length ; i++ )
obj[ ( a = arr[i] ) + '_test' ] = function() { console.log( a ); };
obj.left_test(); // 表示:width
obj.top_test(); // 表示:width
obj.width_test(); // 表示:width
// このようにconsole.log( a );の部分がfor文の最後の要素になってしまうのです
// obj.left_test();で'left',
// obj.top_test();で'top'が返るようにしたいのですがやり方を教えてください // 一応こんな風に連想配列挟めば行けるが挟まずにできるなら教えてクレメンス
var obj = {};
var arr = [ 'left', 'top', 'width' ], a;
for( var i = 0 ; i < arr.length ; i++ )
obj[ ( a = arr[i] ) ] = {
value : a,
test : function() { console.log( this.value ); }
};
obj.left.test(); // 表示:left
obj.top.test(); // 表示:top
obj.width.test(); // 表示:width >>741
節子、それJavaやない。JavaScriptや。 a の宣言位置がダメ
とりあえず宣言はこう変える
var obj = {};
var arr = ['left', 'right', 'width'];
後はお好きに
for (let a of arr) {
obj[a + '_test'] = () => console.log(a);
}
for (var i = 0; i <arr.length; i++) {
obj[arr[i] + '_test'] = function() { console.log(arr[i]); };
}
for(var i = 0; i <arr.length; i++) {
(function() {
var a = arr[i]
obj[ a + '_test'] = function() { console.log(a); };
})();
}
var は難しいから使うな let 使え
IE は捨てろ >>745
スレ違いのガイジにわざわざありがとう勉強になったわ
二番目の奴はundifinedだったが eclipseでdaoクラスのテスト実行しようとしたんですけどエラーが出ちゃって、原因わかる人いますか??
コンソールにはこう出てきました(****の部分は伏せてます)。
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:****/********
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:706)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
at com.example.chumon.dao.ConnectionManager.getConnection(ConnectionManager.java:13)
at com.example.chumon.dao.RegisterDaoTest.testFindByPk(RegisterDaoTest.java:18)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568) (つづき)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) (つづき)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) (つづき)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) (つづき)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) (つづき)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) (つづき)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:95)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:91)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:60) (つづき)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
(おわり) ここに載せるために **** でマスクしてるのにね
マスクする暇あったらもう少し手前を読めと言いたい >>756
>>757
お二人ともわざわざコメントくださってありがとうございます。正直エラーの見方全くわかってなくて…。お二人のおかげで勉強になりました。>>756 プログラマに向いてないからやめちまえよ
仕事なんていくらでもあるぞ? suitabeの時点でわからないから大量のアブラカタブラの一部と認識してシャットアウトするんじゃね
全部貼る生真面目さはある意味でプログラマに向いているかもしれない 依存性注入(DI)の使い方やメリットが
イマイチ理解できない メソッドだけインスタンス化する方法あったよな?どうやるんだっけ >>765
メソッドには呼び出し側と呼び出され側があるけど
上位のメソッドから中間のメソッドを飛び越えて呼び出すと
真ん中のメソッドのテストをするときに下を書かなくていい
という意味らしい
それから一番上のメソッドだけを見るとどのメソッドが
使われているのか全部わかるので
見通しがよくなるんだって Aクラス.testメソッド
A a = new A.test;みたいにしたい メソッドチェーンがしたいということなのかなんなのか >>769
A.test をstatic にすればできる
ファクトリーで使われる >>765
依存性注入(DI)はデータベースを想像すると分かりやすい
アプリはJDBCインターフェースに沿ってコードを書けばいい
実行時クラス(JDBCドライバー)は設定によって Oracle だったり SQL Server だったり差し替え可能になる 変数Aと変数Bを交換したいのですが
A swap B みたいな簡単な命令文はないでしょうか?
int Z=A;
A=B;
B=Z;
みたいなのは長いので嫌です
簡単に10文字くらいでできるやつありませんか? >>769
Predicate<T>とかFunction<T, R>とか
method reference(A::test)で検索してみて >>765
仰々しい名前がついてるけどパターンとしてのDIは
依存してる物(Dependency)を自分で生成せずに外部から渡す(Injection)ように作るというだけのこと
メリットはオブジェクトの生成とオブジェクトの使用という2つの役割を分けることでメンテナンスしやすいコードになる
利用側のコードをインターフェースみたいな抽象のみに依存するようにしておけば利用側の変更を伴わずに依存オブジェクトを異なる具体型に変更できる
ライブラリやフレームワークとしてのDI(DIコンテナ)は生成と注入をコンフィグやアノテーションベースで便利にやってくれるツール JDBCのたとえだと、urlのプロトコル部分でmysqlとか指定しているので、どちらかというとServiceLocatorな感。 外部化することの意味がどれだけあるのかって思うときは多々ある ユニットテストをまともにやれてないならDIの効果は限定的だろうな A[100][100]の全てにBを代入したいのですが
A[][] ALL B みたいな簡単な命令文はないでしょうか?
for(int a=0;a<100;a++){
for(int b=0;b<100;b++){
A[a][b]=B;
}
}
みたいなのは長いので嫌です
簡単に10文字くらいでできるやつありませんか? >>782
java.util.Arrays クラスを見ると fill() が沢山あるので、これを利用すると楽。 for(var x: A) Arrays.setAll(x, __ -> B); JavaでもSIMD使えるようになるらしいね
それ使えないかな? SIMD引っ張り出すようなお題かな?
簡単に書きたいというのがそもそもの要件で、ほぼ同じ簡潔さで書けるなら高速かつ合理的な方のメソッドを採用したほうがいいんじゃねという話じゃないの >>782 はそもそもネタなのと、ロジックが隠蔽されていればいいだけなので、反応しないこと。 javaブロンズの勉強のために、紫本の案内通りにJDKをダウンロードし、 Windowsコマンドプロンプトで確認したところ正常にインストールできました。
それで、参考書はもうそのまま“メモ帳などでjavaのコマンドを書いてコンパイルしましょう”となってますが、JDKインストール後の具体的な実行環境がわかりません。
仮にメモ帳に実際のコマンドを書いて、それをどのようにコンパイルすれば良いでしょうか? javaのコンパイルコマンドを使えばいいんでないの 書いたコマンドをメモ帳あたりで保存しておいて、コマンドプロンプトに貼り付けるときに再利用してってところだと思う
batにしてもいい
VSCodeとかEclipseとか使うともっと楽 >>795
ぷよぷよを作ったコンパイルじゃねーよ!
もう埼玉に移転してるし倒産してんだよ! >>789
C(OS)ディスクにJAVAフォルダを作って、そこにSDKフォルダをぶち込む。
さらにメモ帳で作ったJavaをぶち込んで、拡張子を.txtから.javaに変更する。
続く。 >>765
どちらかと言えば単体テストとかのためのイメージ
クラスAがクラスBが扱う場合で、クラスAをテストしたい場合はBを用意するのが面倒
だからDIとポリモーフィズムを利用してBに関係なくテストできるとか >>798
本を読んでいるのにわからないはずがないだろ セマフォアで悩んでいます。
Proc1とProc2で排他制御やってますが、Proc2実行時にtrueにしている変数aがProc1でtrueが見えているんです。
Proc2をブレークして抜けるまではProc1の処理は待たされていることは確認できてます。
Proc2がsemaphore.release()して、Proc1のブロック解除で何故aがtrueなのか?
Semaphoreの第2パラメーターの意味が理解出来ません。trueでもfalseでも結果はおなじです。
--Proc1--
semaphore.acquire();
if (a) {
/* ここに来ちゃだめだが、何故か来る? */
}
semaphore.release();
--Proc2--
semaphore.acquire();
a=true;
/* 処理 */
a=false;
semaphore.release();
--変数定義--
public volatile Boolean a=false;
--初期化--
public semaphore = new Semaphore(1,true); 2つ目のパラメーターは公平性の指定です
Proc2実行中に、Proc1、Proc3の順に呼ばれて待機したとします。
公平性 true の場合、Proc2のrelease後に先に順番待ちをしていたProc1のacquireが復帰することが保証されます。
公平性 false の場合、Proc1、Proc3の待機順は考慮されません。つまり、後から待機したProc3のacquireが先に復帰する可能性もあります。
Proc2とProc1だけ(待機するスレッドが1つだけ)なら公平性はtrueでもfalseでも影響ありません >>802
ありがとうございます。
公平性、理解出来ました。 >>801
ものすごく適当なエスパーで、そんなことしてない、って言われそうだけど、
Proc1の if(a) の a は正しくフィールドの a ?
void hoge(Boolean a) {
...
if (a) {
...
}
みたいなことにはなってない?
あとは基本的だけど Proc2で a = false せずに semaphone.release() するルートがないかどうか
さらに重箱だけどフィールド a は Boolean じゃなくて boolean にした方がよいかと(typo でなければ >>804
レスありがとうございます。
変数aは引数ではなく外部変数です。
Proc1は0.1秒周期で呼ばれていて、デバッガーでProc2のセマフォア内でブレークさせるとProc1の処理は停止して、セマフォアから出るとProc1か動き、たまにif文の中に入りブレークポイントを仕掛けているので捕まります。
Booleanじゃなくてboolean にするとはどういうことでしょうか?
これから調べますが、よろしくお願いします。
環境はandroidです。 >>805
ちょっと調べました。
Booleanはクラスで参照型なんですね。
プリミティブな変数だと思ってました。
ガーンです。エディタの支援機能のまま書いてしまいました。他も確認しなくっちゃ。
これが原因になるのかわかりませんがやっつみます。 >>806
結果変わらずでした。
書き忘れて申し訳ないですが、if(a) のthen節でブレークした時、aの値はfalseなんです。
then節内で変数aを書き換えてはいません。 連投ですみません。
ifのthen節内にブレークポイントを設定して、trueだったのでthen節でブレークしてからaがfalseに変化した感じですが、おかしいですよね。
Proc2のreleaseの前の行でa=falseしています。この部分はfinally節で記述してます。
a=trueはacquireの次の行です。 >>809
ごめんなさい。
全然関係ない場所にreleaseがありました。
セマフォアでガードしてると思ったが、間抜けでした。
トホホです。 java業務についている方に質問です。
連想配列の多次元配列は使いますでしょうか?
こんな感じのデータです。
{1={名前=田中, 国語=33, 数学=10},
2={名前=高橋, 国語=63, 数学=62}} >>811
Mapを入れ子にすることはある
けど、その例なら {名前=田中, 国語=33, 数学=10} の部分は Map ではなく成績クラスのインスタンスにするかな? >>812さん
ご回答ありがとうございます。
javaをつかってjqueryみたいに
let results = [
{'name' : '田中', 'japanese' : 83},
{'name' : '渡部', 'japanese' : 62},
{'name' : '品川', 'japanese' : 23},
{'name' : '滝谷', 'japanese' : 93},
{'name' : '川原田','japanese' : 55},
{'name' : '一色', 'japanese' : 27},
];
$.each(results, function() {
console.log(this.name);
})
結果
田中
渡部
品川
滝谷
川原田
一色
みたいにやりたいのですが、教えていただけますでしょうか? >>813
Mapじゃなくて配列になってるじゃん
Map内の全要素に処理をするときは for + .entrySet() または .forEach(...) 単に配列にしたいデータのクラスを作ってそのクラスを配列にすれば良いだけでは? >>815
ありがとうございます。
ソースコードをいただけますでしょうか? こんな感じか
List<List<String>> results = new ArrayList<>();
results.add(new ArrayList<String>(Arrays.asList("田中", "japanese", "83")));
results.add(new ArrayList<String>(Arrays.asList("渡部", "japanese", "62")));
results.stream().map(r -> r.get(0)).forEach(System.out::println); >>817
ありがとうございます。参考にさせていただきます。
多次元の連想配列、以下の配列を作るソースコードもいただけないでしょうか?
{
{名前=田中, 国語=33, 数学=10},
{名前=高橋, 国語=63, 数学=62}
} >>819
すいません。いくら自分で調べてわからず恐縮ですが、
何卒、お力添えお願いできますでしょうか? >>818
>>820
if(name.equals("田中")){kokugo=33;suugaku=10;}
if(name.equals("高橋")){kokugo=63;suugaku=62;} >>818
(vector (defparameter *田中* '((国語 (33))(数学 (10))))
(defparameter *高橋* '((国語 (63))(数学 (62))))) >>821
>>822
大変恐縮ですが、コピペでパイザでそのまま使える
ソースコードをいただけないでしょうか? >>824
おっしゃる事はごもっともでございます。
大変恐縮ながら、私の能力は高くないのです。
自分で考えてもこれで精一杯でございます。
何卒パイザでそのままコピペで使えるソースコードを
いただけないでしょうか? >>813
Ruby では、
ary = [
{ 'name': '田中', 'japanese': 83 },
{ 'name': '渡部', 'japanese': 62 }
]
ary.each { |row| puts row[ :name ] }
出力
田中
渡部
Effective Ruby にも書いてあるデザインパターンでは、
本当は辞書ではなくて、そのレコードのクラスを作って、インスタンス化する
辞書では、row[ :name ] みたいに、内部的な詳細であるキーを使っているけど、
クラスなら、row.name みたいに、
メソッド・プロパティーでアクセスできるので、詳細が漏れ出さない こういう無能な教えて君が現場でもたまにいるけどホント怖いわ
こんなのしょうもないことを一生懸命ググって’答え’をひたすら探したり何回も教えてって言ってんだからな
自分が理解できる最小単位にまで分解してそこから考えれば小学生でも簡単に理解できるほど単純なことなのに
ある意味キチガイだよ
ほんとおっそろしいわ val results = arrayOf(
mapOf("name" to "田中", "japanese" to 85),
mapOf("name" to "一色", "japanese" to 27)
)
results.forEach { println(it["name"]) } javaでこのような配列を作れる方いたら教えてくれませんか?
{{国語=78, 数学=90, 英語=20}, {国語=50, 数学=40, 英語=90}, {国語=80, 数学=60, 英語=85}}
というより、以下のように配列1つ1つにキーを指定しないと無理なのかなー?
{鈴木={国語=78, 数学=90, 英語=20}, 佐藤={国語=50, 数学=40, 英語=90}, 田中={国語=80, 数学=60, 英語=85}} import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<String, Map<String, Integer>> nameMap = new LinkedHashMap<String, Map<String, Integer>>();
//鈴木さん
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
scoresMap_suzuki.put("英語", 20);
//佐藤さん
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
scoresMap_satoh.put("英語", 90);
//田中さん
Map<String, Integer> scoresMap_tanaka = new LinkedHashMap<String, Integer>();
scoresMap_tanaka.put("国語", 80);
scoresMap_tanaka.put("数学", 60);
scoresMap_tanaka.put("英語", 85);
//nameマップのvalueに上記3つのマップを入れることで2次元マップを実現
nameMap.put(scoresMap_suzuki);
nameMap.put(scoresMap_satoh);
nameMap.put(scoresMap_tanaka);
System.out.println(nameMap);
}
}
これでエラーになる意味がわからない やっと努力の形跡を見せてきたか
質問の仕方に露骨な手抜きが透けて見えるから誰にも相手にされないんだよ
Map<String, Map<String, Integer>>にしたいなら鈴木って文字列をプログラムのどこにも指定してないのがおかしい
コメントにしか書いてない
キーを指定しないデータ構造にしたいならList<Map<String, Integer>>に変えろ
偶然動いたほうのデータ構造を採用するんじゃなく、正しく書けばどっちでも実現できるんだから、本当にやりたいことに基づいて一番最初にデータ構造を選択しろ
あと初心者のお約束だけどまずエラーメッセージを読め絶対にだ
英語でも読め
そのエラーになった原因は書いてある
読まないやつは決してプログラミングできるようにならない すいません。
【キーを指定しないデータ構造にしたいならList<Map<String, Integer>>】
に変えましたがダメでした(泣)
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Integer>> nameMap = new LinkedHashMap<String, Integer>();
//
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
//
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
//nameマップのvalueに上記3つのマップを入れることで2次元マップを実現
nameMap.put(scoresMap_suzuki);
nameMap.put(scoresMap_satoh);
System.out.println(nameMap);
}
} >>833
まず、エラー文を読もう。読んでわからないなら貼り付けて質問しよう エラー文がこちらになっております。
newをなんとかすれば良さそうですが、
Main.java:16: error: cannot find symbol
nameMap.put(scoresMap_suzuki);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
Main.java:17: error: cannot find symbol
nameMap.put(scoresMap_satoh);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
2 errors 間違えました。こちらです。
Main.java:4: error: incompatible types: LinkedHashMap<String,Integer> cannot be converted to List<Map<String,Integer>>
List<Map<String, Integer>> nameMap = new LinkedHashMap<String, Integer>();
^
Main.java:15: error: cannot find symbol
nameMap.put(scoresMap_suzuki);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
Main.java:16: error: cannot find symbol
nameMap.put(scoresMap_satoh);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
3 errors >>836
エラー文は一番初めのものから解消していくのが基本なのだが、4行目に対するエラーはなんと書いてある?わかる範囲で説明してみて Main.java:4:エラー:互換性のないタイプ:
LinkedHashMap <String、Integer>をList <Map <String、Integer>>に変換できない
つまり、List<Map<String, Integer>> nameMap と
= new LinkedHashMap<String, Integer>();
が不整合ですね。
List<Map<String, Integer>> nameMap に対する newの指定の仕方が
わからないです これはたいへんでちゅね
putをaddになおしまちょうねえ
new LinkedHashMap<Map<String, Integer>>はnew ArrayList<>だよ!
さいきんは あかちゃんでも ぷろぐらみんぐ できて すごいね! >>838
その通り
List<Map<String, Integer>>は、要はListインタフェースをもつ変数の宣言であり、実装しているクラスならどれをnewしてもいいのだが、例えば839の言うようにArrayListを使うのが一般的
new ArrayList<Map<String, Integer>>() と書いてもいい(昔はこういう書き方しか出来なかった)が、<>の中は省略できるのでnew ArrayList<>と書けば良い。 やっとできたー。ありがとう!
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Integer>> nameMap = new ArrayList<>();
//
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
//
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
System.out.println(nameMap);
}
}
結果
[{国語=78, 数学=90}, {国語=50, 数学=40}] 昔、sesとして、javaの現場いったんだけ、できなすぎて、COBOLにさせられた。
そこから底辺コボラーとして5年やった。
今はPHPの自社開発に入れたが、javaをある程度復習したかったんや 違う業界の仕事探した方がいいと思うよ
言語関係ないし phpにもクラスあるだろう、>>815 の方法でいいじゃん お疲れ様です。
名前であるキーを一個一個取り出したいのですが、うまく行きません。
お力添えをお願いできませんか?
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Object>> nameMap = new ArrayList<>();
//
Map<String, Object> scoresMap_suzuki = new LinkedHashMap<String, Object>();
scoresMap_suzuki.put("name", "高橋");
scoresMap_suzuki.put("Japanese", 78);
scoresMap_suzuki.put("math", 90);
//
Map<String, Object> scoresMap_satoh = new LinkedHashMap<String, Object>();
scoresMap_satoh.put("name", "吉田");
scoresMap_satoh.put("Japanese", 50);
scoresMap_satoh.put("math", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
}
} エラー文
Main.java:18: error: incompatible types: String cannot be converted to int
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
^
Main.java:18: error: array required, but Map<String,Object> found
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
^
2 errors
欲しいデータ
高橋
吉田 >>831に戻った方がいいと思う。あれのエラーを取れば完成。 >>845
JavaのMapにs["キー"]みたいな取得方法あるんだっけ?
s.get("キー")で取得しないとダメなんじゃないの できましたー
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Object>> nameMap = new ArrayList<>();
//
Map<String, Object> scoresMap_suzuki = new LinkedHashMap<String, Object>();
scoresMap_suzuki.put("name", "高橋");
scoresMap_suzuki.put("japanese", 78);
scoresMap_suzuki.put("math", 90);
//
Map<String, Object> scoresMap_satoh = new LinkedHashMap<String, Object>();
scoresMap_satoh.put("name", "吉田");
scoresMap_satoh.put("japanese", 50);
scoresMap_satoh.put("math", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
System.out.println(nameMap);
nameMap.forEach(s -> System.out.println(s.get("name"))); // forEachメソッド
}
} 宿題なのかもしれないが、そんなコレクションを何に使うのか? お前ら優しいな
なんだかんだ言って次につながるようにコメントしてんじゃん 5年プログラムに従事してこれ・・・? は? え? 嘘だろ・・・
文章も書いてる内容も障害者じゃなければ同じ業種の成人が書くレベルじゃねーんだが・・・
地頭が悪すぎるからマジでもう諦めろ
他人の仕事増やすだけだからマジでやめてくれ コボラーならこんなもんだよ
この業界こういうのは結構いるから、もし一緒に仕事をすることになったらお前の母ちゃんと同じ種類の人間だと思って温かく接してやれ エラーメッセージすら読めない奴でも給料もらえるのか
COBOLやPHPはすごいな ペチプの会社に転職したのが本当なら新卒と同じ給料でも雇いたくないだろうから
すぐクビになるか邪険にされて使えないポジションでずっと雑用だろうな
1㍉もプログラム触ったことがない新人が1ヶ月研修したレベル未満だし ルックスと愛嬌が良くてマスコットとして愛されるパターンもあり得る
適正ないわりに卑屈さがないしセンパイ教えてくださーいでこれまでやってこれた可能性
いずれにしても歳食ってきたら処世術切り替えないとジリ貧なのは同じだけどな このスレでも言動がめっちゃ叩かれてるじゃん
愛嬌とかマスコットとは正反対のムカつくキャラだと思うぞ 質問の出だしが「業務についている方に質問です!(キリッ!」とか書いてるけど
1円で投げ売りしてる入門書の3ページ目ぐらいに書いてるぐらい稚拙な質問なのに業務も糞もねーしw
しかも最終的に出した答えの配列の形も酷すぎて業務でこんな使い方は絶対しないし あるカテゴリが2つ以上の状態を持っててそれがデータとして沢山出てくるなら
そのカテゴリ専用のクラスを作るんだよチンパン君
っつーかどんな仕事でもこういうデータの状態は絶対にないわけないから5
年仕事しててこれって普通にチンパンのホラだな まあ、今はスキルアップのために自ら空き時間を使って学んでいるからいいじゃないか。SES時代は受動的に仕事をしていただけだったのかもしれないが、きっと、このままじゃまずいと思って心を入れ替えたんだよ。
業務レベルになる、ならない、はともかく、学習意欲は応援してあげようよ 君は甘いなあ
こういう無能は有害だから早めに駆逐しておいたほうがいいんだよ、、 >>857
言ってる内容が底抜けにマジキチのアホだとしてもガッキー級の可愛い子が笑顔で頼ってきたら大抵の男は鼻の下伸ばして応えるだろ
極端な例だがそういう可能性の話よ >>857
補足
愛嬌っていうのは人がどんな言葉を発するかはほぼ関係がない
人の好感度は表情や声のトーンのようなノンバーバルコミュニケーションでほぼ決まる
匿名掲示板ではその法則が崩れるから面白い事故が起こることがある >>861
業務で一緒になったら有害だろうな。今は、業務と関係ない言語を自習しているんだからいいじゃないか。趣味でやってるなら過去関係なく応援してあげようよ。
SESの条件が滅茶苦茶悪くてその時には鬱病になりかけるほど頑張れないほど仕事ですり潰されていたのかもしれないし。
まあ、一緒に仕事することがあったらキツく当たるかもしれないのは否めないが。
そもそもSESで頭数だけ揃えるみたいなことがなくならない限り、1人潰したところでまた別の1人が生まれるだけよ。 >>849
scoresMap_suzuki と scoresMap_satoh と2つオブジェクトを用意するところや、コードの順番が悪くて意図が伝わりにくい。
言葉で説明できるような順番にしてくれ。最初のコレクションオブジェクトもそこに書くもんじゃないだろ。 >>866
レベルやキャパを考えるとリファクタ寄りの話はもっと根本的に超大事なことを押さえた後でいいよ
それとオブジェクトを2つ作るという表現は理解が怪しいな
変数を1つにするとスッキリするけどオブジェクトは2つ必要
そこは誤ってはいけない まぁまぁそうことをあらだてるなよ
はたらいてるだけすごいじゃないか
おでむしょくだぜ 案外こういうデータ構成をどうするかとか、理解できない奴は結構いるけどね
こういうレベルの奴が何故か派遣やらフリーランスにいるから笑えるんだよねw どうせあんたも脳内会社員でしょ
Youtubeとかの情報で使えないやつのこと知ってるだけで
現実は超むしょく
プログラミングはできるけど
対人能力がなくて会社勤めをしたことない
おでもそうだからよくわかるよ
ブヒャ 会社勤めで大切なのは
プログラミング能力じゃないのよ
しゃべりかた・みだしなみ・めつき・れいぎ・・・・つまり社会性
こっちのほうが重要なのよ
おでみたいにひきこもってプログラミンできるようになっても
ネクタイひとつ巻けない人間は採用されないわけよ
プログラミングできなくても会社に採用された人はすごいと思うよ 無職の有能プログラマーはぜひOSSに貢献してくれ
報酬はないけど名誉は無限大だ
期待しているよ ここの元コボラー以下の無職の自称ゴミプログラマーにできる仕事なんてこの世にはない >>874
OSSでも企業や個人のスポンサーがつくこともあるよ SESのプログラミングなんてコピペ大量生産能力
同じ処理が何十箇所にも書かれたクソコードを一つずつ全部直してテストする体力と思考停止能力 >>867
定数をオンコーディングしている点がおかしいと指摘している >>867
小学校で行われているプログラミングは手順、処理の流れを考えるものだよ?
わかりやすい手順、手続き、フローというのはプログラマにとってはもっとも重要なこと。 >>873
>>873
ネクタイなんか巻いたことないがプログラマーで普通にお金は貰ってたけどな。襟付き着てこいとかも言われたことない。
人によるよ。
人を小馬鹿にしないとか、失礼な態度は取らないように極力努力はするだとかはしてたけど。
分かったのは、頼む側からして頼む人が身近に見つけられなかったらその人に頼むしかないということ。
だからといって付け上がってはいけないが。 >>883
まあ、そう思うんならそう思ってれば良いよ。ある程度理系の素養があってCSも多少わかるならクリエイティブ職やr&Dの外注であれば文章力なんかで評価されない。普通に人月150万で日本のトップ企業に請求できるよ。
第一今は酔ってるし客先に送るメールではもっと文面に気をつけているよ。
何を腐したいのかわからないが。 その知能ではお金はもらえない
サルの妄想はトイレットペーパーにでも書いてろ このスレに限らず最低時給すら貰えないような知能のゴミニートが
ぼくちんは年収1000万!だとか
ぼちんは日本のトップ企業からお金もらえる!だとか
この手の糞ゴミはどっから沸いて来てんだマジで あとこいつみたいに何の役にも立たんゴミコード書く奴も追加 >>886-887,889
あんたが年収1000万いかないからって勝手に同じ括りにしないでもらえるかな(笑)
プログラム頑張ったのに平均年収にも達しないから発狂してるの? 家の近くにパソコン教室とかないのか?
ママに頼んで通わせてもらえよ・・・
そしたらそこの先生にぼくちんは日本のトップ企業ガー!って好きなだけ言えばいいゴミニート君(失笑w
ゴミ 人並の年収の定義を書いてみ
ぼくちんは年収1000万が人並みってか?w
あほ 厚生労働省の最新データによると年収の平均値が486万円ということなので、男性に限れば700万程度が全年齢の平均値になると思います。
40代で1000万、50代以上で1200万くらいあれば、平均的と言えるでしょう。 なんで40代以降の平均を妄想で一生懸命書いてんだよアホ
20代の書いてみ
あほ 医学博士の初任給平均2500万、工学博士で2200万ほどだそうです。
世界的に見れば激安で、日本の科学技術が衰退した要因とも言われています。 少子化対応で労働力確保のため「女性が輝く国造り」を行った結果、女性の就業率が8割を超え、少子化がさらに加速しました。
昨今では平均給与が低迷するように見えるわけですが、実は時給1000円で働く女性が増えただけなんですね。
男性の給与は伸びています。
あなたの給与だって上がっているでしょう? 自民党の秘策、人生100年時代の労働環境づくりで、おじいちゃんおばあちゃんも当てにできなくなり、少子化はさらに加速するはずです。
二世三世、帰化人、芸能人が考える政策ですから。
日本の未来やいかに。 給与を中央値ではなく平均で語ってるあたりもいかにも虚しい空中戦 男で年収1000万無かったら家庭を築けないでしょう。 統計学はいろいろ役に立つと思うから勉強しとくと損ないよ >>903
ここでだましているな
という意味でが
一番役に立つ Mathは処理速度が遅いので使わずに絶対値を出したいんですが
C=A-B;
Switch(C){Case-:C*-;}
とやってもエラーが出ます
どうすればいいですか
ググっても全然わかりましぇん 「Mathは処理速度が遅い」
それはもうJavaで書かないで
別の言語で書いた方がいいのでは? eclipseを使って版強してるけど、使ってる本が古い本なんでDOSプロンプトで実行するくだりがeclipseでは
どうやるのかわからなくてそんなことをネットで調べる毎日www eclipseはmainメソッドを持ってるクラスを自動検出するからプロジェクトを実行するだけでいいんじゃなかった? int[] baka={2,4,10,6,15,3};をint[] baka={2,3,4,10,15};のように
数字の小さい順に並べ変えるプログマムを組みましたが
baka.sort(function(first, second){
return first - second;
});
全然エラーが出てどうしようもありません
どこが間違っているのでしょうか?ちゃんと調べたとおりにやっているのに そのブログママはJabaではないのでIEでじっこうしてくだちい System.out.println(Stream.of(2,4,10,6,15,3).sorted().collect(Collectors.toList())); javaブロンズ黒本についての質問です。
自分の場合、第5章オブジェクト指向の概念などは解答と解説を読むと余計にごちゃごちゃとしてわからなくなってしまいます。。
情報隠蔽の説明やインターフェースなど案外解説まで熟読せず、選択問題なら解答丸暗記のような具合で進めても良いのでしょうか…。 試験に受かりたいだけなら好きにすりゃいいけど、それで採用されてもすぐクビになるだけだよ なるほどそうですか… うーむ、やはり深く理解したいです…うむむ。 オブジェクト指向という広範な話題を資格の参考書程度で深く理解するのは不可能だ
ちゃんとした本を買いなさい >>916
それでいいよ
試験用の勉強と実務で必要な知識の勉強は分けて考えた方がいい
試験用の勉強は必要最小限に >>921
有り難うございます!非常に参考になります!! その辺の話
具体例が書いてあるのがほとんどないんだよな
初心者にはイメージがわきにくい オブジェクト指向はあくまで現実世界を説明するのに「広く使いやすそうな」モデル化手法であるというだけで、あらゆる全てをオブジェクト指向でなんでもモデル化出来るわけじゃないことに注意したい もういい加減、この手の現実世界のモデル化、みたいなことをオブジェクト指向プログラミング(=実装)のコンテキストで語るのは止めようや それなー。
現代だと、オブジェクト指向ってなんですか?という問いに答えるのは非常に難しいと思う。 何度か痛い目にあわないと
こんな複雑で面倒くさいものを
使おうとは思わないからな staticってようするに2度目以降のnewしても初期化されない変数てことでいいの?
全然使い道がわからん 同じクラスを複数構築してもstaticは同じ記憶域になるから共有変数みたいになる。 new する前も new した後も
同じ値を持ったまま
インスタンスからは基本変更できない メンバ変数も関数も全部staticにして気がついたら似非シングルトンになってる現象 staticフィールドはクラスに情報を保持するものとしか
クラスとオブジェクトの区別をつけましょう
ただし "staticな状態" を持つ設計は自動化テストと相性が悪いので、特別の理由がない限り推奨されない
利用方法は色々あるけれど、
基本的にはstaticメソッドを提供する上でどうしても状態を保持する必要がある、って時に使う
(設計を見直す必要があるかもしれないというサインでもある)
あるいはInteger.MAX_VALUEのように本質的に定数扱いできるものを表現するためにstatic final ...で用いるケースもある(publicとは限らず) 特別の理由は例えば、
IntegerクラスのstaticメソッドInteger.valueOf(int)は一定の範囲内の数値についてはキャッシュされたインスタンスを返す
このようなインスタンスのキャッシュ処理を実装するには生成済みオブジェクトの参照を保持しておく必要があるけれど、
こういう用途にstaticフィールドを用いるのは有用だしよく行われる
※Integerは不変クラス(イミュータブルクラス)なので、生成された後に状態は変わらないからインスタンスを複数の箇所で共有しても問題ない
だから同じ値を表す新しいインスタンスを生成する必要が無い C言語あたりのstaticの働きと混同している人がいるね
Javaではstaticとnewの間には特に関係はない
クラスに一つだけ紐づくのかインスタンスごとに紐づくのかそれだけが異なる 実務経験0の奴ほどゴミみたいな長文を書くのがこのスレがゴミである一番の理由
あと知ったか >>938
932です。
私が言いたかった事です。
適切な説明で今後利用させていただきます。 インスタンスて何なのかよくわからないのですが
Baka b=new Baka();
↑
このbがインスタンスなんですか?
自分はこれをオブジェクトだと思っていました Javaの文脈においてはほぼ同じだと思ってていいよ
bはオブジェクトでもありインスタンスでもある
オブジェクトのほうが広義でフワッとしてる
クラスの対義語としての一つ一つnewされたモノはインスタンスと呼ぶ方が的確 インスタンスはほぼ変数と同じ
int a;
Baka b = new Baka();
int a = 1;
Baka b = new Baka(1);
並べてみると分かりやすいかと思う 参照と実体はしっかり区別しておかないと、なんだかよくわからない挙動が起こる、と悩まされることになるので >>938,940
Cでもstatic変数とnew(てmalloc?)には関係は無んじゃね?
Cのstatic変数はプログラム(モジュール)のロード時に確保される
Javaのstaticフィールドはクラスのロード時に確保される
ある意味同様のアナロジーかと Cのstaticはローカル変数につくこともあるのでインスタンス化すべきタイミングが変わってくる
スレの趣旨と外れるから細かい話は省く
Javaのstaticがクラスのロード時に初期化されるというのは、右辺に初期値を与えたときやクラスイニシャライザを書いたときの動き
シングルトンを実現するためのstatic変数なんかは必ずしも初期化されないので、やっぱり初心者向けの理解としては変数の紐づく先が違うと覚えておくのがいいと思う 礼も言わないbakaって書くバカと
実務経験0の知ったかゴミどものオナニー長文会場
逝ってよしッ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! >>946
あんたJavaがVM上で動いているのもわかってないのか? ジャバスークリプトとジャヴァ勘違いしたアホと
実務経験0で知ったかするバカが絶対にいなくならない不思議
ここは池沼の日記帳じゃねーぞゴミ 5chの低年齢化がひどい
若者はJavaに関わらない方が良い 高齢化が進んだので「最近の若えモンは~」がそこかしこで聞こえるようになったという逆説的シチュエーションだよ 若者はJavaに関わらない方が良いというのも実はツンデレ老婆心の現れ
Java+IEのレガシーシステムの保守はワシらが食い止める!
ここは任せてお主たちは先に進むんじゃ! 今では私がおじいさん孫にあげるのはもちろんEnterprise JavaBeans seleniumでクロムのwebdriver動かないよね?クロムバージョン103
今102に戻して使ってる
バグだらけの状態でよく安定版とか言って強制的に人様のPCに無理やり勝手にインストールしてくるよな
糞が Seleniumってコンテナか専用サーバー内でヘッドレスブラウザ使って動かすもんだろ?
まさか常用PCの常用ブラウザで運用してるのか chromeの更新頻度が高すぎてドライバが追いつけないんじゃねえの?
95だったかinput要素の中身を削除すると変なコードが入力されて困った経験があるわ。 okボタンを押下した後、テキストフィールドを表示させたいのですが、できません。
なぜでしょうか?
public class PanelTest extends JFrame {
private JPanel panel;
public PanelTest() {
setBounds(0, 0, 100, 100);
panel = new JPanel();
JButton ok = new JButton("OK");
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getContentPane().remove(panel);
panel = new JPanel();
JTextField tField = new JTextField("Test");
panel.add(tField);
getContentPane().add(panel, BorderLayout.CENTER);
}
});
panel.add(ok);
getContentPane().add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
new PanelTest().setVisible(true);
}
} >>961
ヒント
panelを新しいやつにした後でsetVisible(true); 数字の桁数を取得したいのですが
int baka = 49895963;
String aho = String.valueOf( baka );
int keta = aho.length();
のようにいちいち文字列にしないと取得できません
数字のまま桁数を取得できる方法はないのでしょうか?
いくらググっても全然わかりません intで表せるのは10桁
マイナスを含めたとしても5回くらいif文で判定したら桁数求められるんじゃない? コードが全部乗らないので、ttps://pastebin.com/sYYXgGE0
対象ファイルの中身がリトルエンディアンで、[01, 02, 00, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10]。
1バイトを最初に読み込むと「1」が表示され、次に2バイト読み込むと「2」が表示される。
その次に2バイト読み込むと「1284」と表示され、次に3バイト読み込むと「526086」が表示される。
指定したバイト数だけ読んで、その結果を表示したいのですが、期待通りになりません。
bis.read()が間違っているのでしょうか? >>968
bis.read(byte[], int, int) の二つ目の引数、int offset は0で良い
そこのoffsetは第1引数のbyte[]に格納する際のオフセット
bisの内部のoffset(どこまで進んだか)はbis自体の内部で保持されてるから
bis.read(...)の後で
System.out.println(Arrasy.toString(byteList));
とかすると何が起きているか見えるはず >>969
ありがとうございます。
何となくわかってき始めました。 初歩的な質問ですいません
ひとつの配列変数に文字列も数も加えたいのですがどうすればいいですか?
a[]={1,2,3,"baka",4,5,3.14f,"aho",25%,"kitigai"};
というふうにやりたいのですがうまくいきません
どうすればいいのでしょうか >>973
なるほどわかりました
ありがとうございます >>973
おいおい、オブジェクト型の配列であって配列には間違いないだろ。
Object[] 型だ。
まあ、Javaは配列もオブジェクト型として取り扱えるのは間違いないが、配列ではない、は間違い。 毎回質問に"baka"とか"kitigai"とか織り込んでるやつは初心者を装って遊んでるマジモンだろ 実際真性のバカだから自虐で書いてるだけのガチの馬鹿だ eclipseを使ってるのですが
サーブレット [LoginServlet] のServlet.service()が例外を投げました
とだけ出て何の例外かが分かりません
これを特定する方法はありませんか? Java覚えたらFWのspringboot覚えた方が良いよ。 >>980
おお既にスレ内にありましたか
見ていませんでしたありがとうございます >>978
その例外に対する処理がないよと警告されてんだよw javaファイルでファイルの文字コードを一括に変える方法ってありませんか?
win環境となります。 わざわざvimなんて使わなくてもシェルスクリプトで十分 Gradle導入済みなら数行のタスクを書く
なければPowershellのバージョン7で
懐かしのnkfをダウンロードしてもいい Javaソース内で異体字セレクタなんて使うことある?
中国に発注して繁体字のコメントが入ってるとかかな >>991
適当なプログラムなら十分あるんじゃないか。
会社の重役の名前がハードコードされていて、条件分岐するコードとかありそう。
もちろん本来ならそういうのは外に設定ファイルとして出すべきだろうけど。
しかしIVS使われてたらUTF-8,16,32間ぐらいでしか文字コード変換できないよな。 >>984
文字コード変換は、C言語で書くのが一番楽。
なぜなら処理系やライブラリが余計なことを全くしないから。 >>993
基本何か入れるのが難しい環境なんです
cssやらxmlも全部変えたいのです
utf8のbom付きからutf8に ツール入れられないなら自分で書けばよくない?
バイナリで読み書きしてBOMを追加するプログラムとかシェルスクリプトとか OS標準環境でBOM削除ならPowershell一択 BOMがあればutf8と判明するのに、BOM付きを毛嫌いするGNUが理解できない。 >>997
∵BOM = Byte Order Mark BOMなければ、7bitの文字しか使っていない時に、ASCIIファイルとして開けるからとか? このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 378日 9時間 33分 21秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。