Java入門・初心者質問スレ Part.10

■ このスレッドは過去ログ倉庫に格納されています
2020/04/01(水) 15:09:15.95ID:9COIb57q0
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.9
https://mevius.5ch.net/test/read.cgi/tech/1552143555/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
404デフォルトの名無しさん (ワッチョイ 3f7c-1TtA)
垢版 |
2020/06/25(木) 19:58:50.86ID:Xb49DC620
>>401
絶対パスにして実行しても何も起きないですね…
String strpass = “java.properties”;

>>402
ありがとうございます。
eclipseで相対パスを求めるにはどうすれば良いですか?
無知ですみません。

>>403
すみません。問題にfinallyを用いてストリームを閉じるようにとの指定があるので…
405デフォルトの名無しさん (ワッチョイ 3fa5-C4gh)
垢版 |
2020/06/25(木) 19:59:42.08ID:YILGQb5k0
そのサイトは先にC言語でもゴミを排出してる

侍エンジニア塾のC言語のサンプルがヤバすぎる。 - Qiita
ttps://qiita.com/hamichamp/items/7b7a7ee091a6856ac900

ハッキリ言ってこの世に存在しちゃいけないクオリティだよ
日本の生産性下げるためにわざと、としか思えない
406デフォルトの名無しさん (ワッチョイ 3f7c-1TtA)
垢版 |
2020/06/25(木) 20:47:36.04ID:Xb49DC620
>>405
そうなんですね。信用していたのですが…
教えて頂いてありがとうございます。
407デフォルトの名無しさん (ワッチョイ ff01-fk+3)
垢版 |
2020/06/26(金) 01:56:48.85ID:Pmgb6tek0
>>404
> String strpass = “java.properties”;
コレハ絶対パスとは言わないよ、ファイル名だよ、ルートディレクトリからのパスを記述するのが絶対パス

> eclipseで相対パスを求めるにはどうすれば良いですか?
System.out.println(Path.of("").toAbsolutePath().normalize());

> 問題にfinallyを用いてストリームを閉じるようにとの指定があるので…

明示的に閉じるならこんな感じ

var in = new FileInputStream(strpass);
try {
  pr.load(in);
} finally {
  in.close();
}

tryの中で例外が投げられてfinallyでも例外が投げられると
例外の情報が上書きされてしまうから業務でプログラム書くことになったら
try-with-resourcesを使ったが良いよ
408デフォルトの名無しさん (ワッチョイ 3f7c-1TtA)
垢版 |
2020/06/26(金) 16:19:11.98ID:xWZZRBL00
>>407
絶対パスで実行したところうまく行くことが出来ました。
もっと勉強します。

みなさん本当にありがとうございました。
409デフォルトの名無しさん (アウアウウー Sad3-L1xV)
垢版 |
2020/06/28(日) 10:13:11.31ID:cGnhG6nOa
>>2さんがちょっと進歩したくらいの超初心者です
オープンJDK最新版(14.0.1)インストールして環境設定?みたいなのもググって見よう見まねでやりました
それでメモ帳とコマンドプロンプトでまたも見よう見まねで簡単なコードを書いてコンパイルして実行しようとするとエラー
調べてみるとJREのバージョンが古いから最新のやつには対応してないみたいな感じでした
JDKにはJREも含まれてるはずなのでおかしいなと思いましたがPCに元から入っているJREが悪さをしてるんじゃないかと思ってJRE8(1.8.0?)を1度削除しました
そして再度実行しようとすると今度はJREがないので実行できないと…
結局JRE8をインストールしなおしJDKのバージョンを8まで下げて解決させましたがどういうことだったんでしょうか
無知ですみません
410デフォルトの名無しさん (ワッチョイ ff01-fk+3)
垢版 |
2020/06/28(日) 10:42:25.35ID:qNzQpEfW0
>>409
Java 14でコンパイルしたものをJava 8で実行しようとしたのじゃないかな
411デフォルトの名無しさん (アウアウウー Sad3-L1xV)
垢版 |
2020/06/28(日) 11:50:16.52ID:cGnhG6nOa
>>410
それはそうなんですが、JDK14ってインストールするだけ(正確にはそうではないですが)で書くのも実行もできるようになってるんじゃないんですか?
自分はそう思ってたんですが…
412デフォルトの名無しさん (ワッチョイ ff01-fk+3)
垢版 |
2020/06/28(日) 11:54:41.46ID:qNzQpEfW0
>>411
それは知らない
僕は事象だけみて説明がつく理屈を考えた
2020/06/28(日) 12:59:03.01ID:HALCIzQn0
どのJREで実行するからちゃんと指定したいなら、コマンドプロンプトから java.exe もしくは javaw.exe をフルパスで叩いて直接実行しなよ
2020/06/28(日) 13:32:14.06ID:gpvPUA3V0
OSさんからしてみりゃ、どっちのjava.exeですか?弊社にはjava.exeは2人おりますが…ってな感じだ
環境変数でパスを通す方法と優先順位を調べるとよい
415デフォルトの名無しさん (アウアウエー Sabf-PKxn)
垢版 |
2020/06/28(日) 16:07:45.40ID:h6Ozp34ka
javac コマンドにtarget 1.8オプションなかったけ?
416デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
垢版 |
2020/06/28(日) 21:19:16.18ID:7UQn/xBi0
>>409
よくわからないが8のjreだけでなくjdkもアンインストールしてみたら?
2020/06/29(月) 03:23:18.98ID:ze6DZkOI0
例えばコマンドプロンプトで、メモ帳の.exe を探す。
もし複数表示されたら、上の方が実行される

where notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

つまりグローバルで、notepad というコマンドは、
上の方の.exe に関連付けられている

これが環境変数PATH。
環境変数には、(ユーザー)環境変数とシステム環境変数の2つある。
(ユーザー)環境変数は、そのユーザーだけに適用されるが、
システム環境変数は、すべてのユーザーに適用される

環境変数PATHを知らない香具師は、すべてのOS でプログラミングできない!
418デフォルトの名無しさん (ワッチョイ 3f61-x+MM)
垢版 |
2020/06/29(月) 16:34:52.03ID:aYLVTpU+0
Rubyいわないんだ。
2020/06/29(月) 19:08:08.60ID:tebmIlQa0
香具師ってなんですか…
2020/06/29(月) 19:50:38.78ID:s7d57z44M
香具師
ヤシ
ヤツ


2ちゃんねるがまだアンダーグラウンドだった暗黒時代に流行った隠語だよ
421デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
垢版 |
2020/06/29(月) 21:21:37.32ID:o17FnYvx0
アンダーグラウンドというよりは昔から便所の落書き
2020/06/29(月) 21:29:17.13ID:6d9dL1u1a
痰壺ですよトップの絵は
2020/06/30(火) 09:58:33.47ID:qX2MPAZ00
Java の正規表現で、メタ文字じゃないのにエスケープできる文字って、単にミスを回避する目的のためだけですかね?
例えばセミコロンとか正規表現のメタ文字じゃないからエスケープする必要ないけど、\; と書いてもエラーでませんよね?
2020/06/30(火) 10:31:46.30ID:qX2MPAZ00
\あ とかも出来るのか仕様上
英字以外は意味無しエスケープもできるのね…
2020/06/30(火) 11:09:35.97ID:XllaytC9M
ミス回避にはなってないんじゃね?
意味無しは意味無し。それだけのことだろ。
余分なセミコロンと一緒。
2020/06/30(火) 11:13:15.66ID:NVwlIMqNa
JSPでJavaScriptを吐く時はセミコロンのエスケープいるかも?くらい?
427デフォルトの名無しさん (ワッチョイ 3fa5-C4gh)
垢版 |
2020/06/30(火) 20:32:26.69ID:+e+FbMSY0
perl時代の謎機能を引き摺ってるとか
正規表現のパターンそのものをprintしたいとか
その時は全部の文字の前にとりあえず¥を差し込めばいい

なんにせよ正規表現の闇は深い
2020/07/03(金) 09:11:25.54ID:L4tF4yhqM
logをファイルに出力したいのだが、何か参考になるサイト等教えてくれまいか?
2020/07/03(金) 09:33:11.23ID:r9jTvXIP0
>>428
https://www.google.com
430デフォルトの名無しさん (アウアウエー Sa82-h0J+)
垢版 |
2020/07/03(金) 12:50:59.34ID:/+eVmD+ma
>>428
Javaのエラーをファイルにリダイレクトする
https://web.plus-idea.net/2012/04/java-redirect-error/
431デフォルトの名無しさん (アウアウウー Sacf-Im8i)
垢版 |
2020/07/03(金) 20:58:37.91ID:utx4gTp9a
>>428
java logger とかのキーワードで検索すると沢山出てくると思う。
2020/07/22(水) 19:24:29.24ID:h+C0qpet0
android開発でも同様にログはかせんと
2020/08/06(木) 08:56:12.42ID:KV4/CgyK0
swingでウィンドウアプリケーション作りたいんやがやり方がわからんので教えて頂きたいです。
とりあえず一旦ウィンドウ表示させる所からやりたいんやけどそのやり方が分からん。
言語はJavaで開発環境はAtom
ドシロート丸出しの質問失礼しますm(_ _)m
2020/08/06(木) 09:13:01.91ID:sL8T8qE90
それは大変でございましたね。
自力で最低限の部分すら調べられないのであれば、
まあswingとはご縁がなかったということで。
2020/08/06(木) 09:15:53.80ID:sL8T8qE90
そうそう、ドシロート丸出しじゃないですよ。
ドシロートというのは自分で調べる努力くらいはしているものです。
よって、何がわからないかくらいは把握しているものです。

あなたの場合は、努力を放棄して、全てを召使にでもやらせる感覚ですね。
人間のクズ丸出し、とでも申しましょうか。
他人を便利な道具としてしか見ていない、まあ端的に申しまして
ただのキチガイでございますね。
2020/08/06(木) 09:30:42.73ID:Z0IRQC5l0
5chや掲示板の利用者としてドシロートという意味なら間違いではないと思うよ
2020/08/06(木) 09:31:20.11ID:KV4/CgyK0
色々本読んだりネットで調べたりして調べたんですが…
すみません…
2020/08/06(木) 09:35:23.02ID:Z0IRQC5l0
>>437
ここで手取り足取り教えることなんてできないんだから、質問内容をもっと具体的に絞り混んだりしないと答えようがないよ。
まずは一通りやりたいことがかかれてる入門書を買って頭から順に学習して、具体的に分からないことが出てきたらそれを質問してみたら誰か答えてくれると思うよ。
2020/08/06(木) 09:47:52.41ID:KV4/CgyK0
具体的…
atomのスクリプト使ってGUIの実行は出来ないのですか?
2020/08/06(木) 10:00:15.02ID:HKTR85QV0
掲示板でSwingのウィンドウの出し方から教えるってのは無理があるねえ
初歩から解説してる良いサイトないですか?という質問だったら分からなくもないんだが

Googleで検索したら解説サイトくらい見つかるだろ?
プログラミングは躓く部分多いから検索の仕方を覚えることから始めたほうがいいよ
441デフォルトの名無しさん (ワッチョイ 1b01-h+bK)
垢版 |
2020/08/06(木) 10:55:29.86ID:VfUrQYoq0
>>440
NetBeansでJFrameを作成して実行すればいい
1行で説明可能
442デフォルトの名無しさん (ワッチョイ 1b01-h+bK)
垢版 |
2020/08/06(木) 10:57:05.73ID:VfUrQYoq0
Atomは窓から投げ捨てます
2020/08/06(木) 12:44:38.91ID:P5PbgXc5a
atom触ったことないけどjavaのコード実行できるならGUIだろうと実行できるだろう
444デフォルトの名無しさん (テテンテンテン MM8b-/Jt2)
垢版 |
2020/08/06(木) 13:00:45.70ID:2+xjLJ7WM
>>433
JavaDrive
Home
Swingを使ってみよう
https://www.javadrive.jp/tutorial/
メモ帳にコピペしてjavacでコンパイルしてjavaで実行するべし

import javax.swing.JFrame;

class JSample1_2{
  public static void main(String args[]){
    JFrame frame = new JFrame("MyTitle");
    frame.setBounds(100, 100, 600, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}
2020/08/06(木) 14:57:33.42ID:9yBY+nPJM
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.BorderLayout;

class Sample extends JFrame{
 public static void main(String args[]){
  Sample frame = new Sample("MyTitle");
  frame.setVisible(true);
 }

 Sample(String title){
  setTitle(title);
  setBounds(100, 100, 600, 400);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  Container contentPane = getContentPane();

  JButton nbtn = new JButton("NORTH_Button");
  contentPane.add(nbtn, BorderLayout.NORTH);
  JButton sbtn = new JButton("SOUTH_Button");
  contentPane.add(sbtn, BorderLayout.SOUTH);
  JButton ebtn = new JButton("EAST_Button");
  contentPane.add(ebtn, BorderLayout.EAST);
  JButton wbtn = new JButton("WEST_Button");
  contentPane.add(wbtn, BorderLayout.WEST);
  JButton cbtn = new JButton("CENTER_Button");
  contentPane.add(cbtn, BorderLayout.CENTER);
 }
}
446デフォルトの名無しさん (ワッチョイ 1b01-h+bK)
垢版 |
2020/08/06(木) 19:08:30.52ID:VfUrQYoq0
>>444,445
お前ら・・・

SwingのイベントはEvent Dispatch Threadで処理されるのだけれども
SwingのコンポネントはスレッドセーフではないのでEDT以外のスレッドで
インスタンス作ったり状態を変えたりするとデータ競合が起こるよ

mainメソッドはmainスレッドで処理されるのだけれども
mainスレッドはEDTとは違うものなので例外ではないよ

ちゃんと書くならこう
public static void main(String[] args) {
 EventQueue.invokeLater(new Runnable() {
  public void run() {
   try {
    MainFrame frame = new MainFrame();
    frame.setVisible(true);
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 });
}

GUIデザイナを使えばソースが自動生成されるからそれを参考にするのが良いと思う
GUIデザイナはNetBeansなら最初から使える、EclipseならMarketplaceでWindowBuilderをインストールできる
EclipseのWindowBuilderはOracle JDK8じゃないと動かないかも
447デフォルトの名無しさん (アウアウカー Saad-/Jt2)
垢版 |
2020/08/06(木) 19:18:36.12ID:nx4HEXSEa
//んどくせぇからコレで良いよ
import javax.swing.JFrame;
class a{ public static void main(String a[]){
  new JFrame().setVisible(true);
} }
2020/08/07(金) 22:40:01.40ID:831Yvcil0
他人のMODを改造して、オレすげ〜 したいのに
リバースできないんだ。JAVAアプリのウィンドウが最近、絵画調に
すげー見にくい。ググっても同じ症状のやついないし、わかる人いる?
https://i.imgur.com/59nyRLW.png
449デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 05:56:10.26ID:Dj/VOa590
このようなバグが出ました
オラクルのサイトの説明等も見たのですがよくわかりませんでした。
改善方法等わかる方いましたら教えていただけると幸いです。


  # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffcee97f74a, pid=12912, tid=8984
#
# JRE version: Java(TM) SE Runtime Environment (14.0.2+12) (build 14.0.2+12-46)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.0.2+12-46, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [awt.dll+0x8f74a]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
450デフォルトの名無しさん (ワッチョイ 1361-I3qO)
垢版 |
2020/08/08(土) 06:37:17.17ID:+mzacAgD0
JVM側のバグじゃないか?
グダグダ悩むよりバージョン乃至リビジョンを変えてみるのがいいだろう。
2020/08/08(土) 06:42:42.73ID:hMmkStZ70
>>449
JDKのバージョンを下げる。
452デフォルトの名無しさん (ワッチョイ 1b02-I3qO)
垢版 |
2020/08/08(土) 07:05:34.92ID:7VAw6OMl0
>>448
エスパー募集ってちゃんと書いとけ
453デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 07:19:37.31ID:Dj/VOa590
>>450
JDK入れなおします
推奨のヴァージョンとかってありますか?
2020/08/08(土) 07:58:46.55ID:Teg6jmuF0
推奨バージョンはない
awt.dllのクラッシュはJDKが新しければ出ないというわけでもない
新旧いろいろ試してみるしかあるまい
455デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 08:34:16.98ID:Dj/VOa590
>>454
14から13に落としてもダメだった…
2020/08/08(土) 08:46:54.94ID:hMmkStZ70
たぶん1.8なら行ける。
457デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 09:00:07.11ID:Dj/VOa590
>>456
11もダメだった
1.8やってみる
2020/08/08(土) 09:06:25.21ID:Teg6jmuF0
いやメジャーバージョンだけでなくマイナーバージョンも変えてみて
たとえばIntellJのawt.dllクラッシュはJDK11.0.6で発生してたけどJDK11.0.5では発生しないとかあった
バグフィックスはマイナーバージョンのほうが重要
2020/08/08(土) 09:08:53.25ID:Teg6jmuF0
多くのマイナーバージョンを試せるLTS(1.8または11)がよい
9,10,12,13,14はサポート期間が短くマイナーバージョンが少ないから
460デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/08(土) 09:16:50.07ID:Dj/VOa590
>>458
>>459
アドバイス見れてなかったすまん
とりあえず1.8にしてできるようにはなりました
このアドバイスは後々の参考にします
ありがとうございます
教えてくださった皆さんありがとうございました。
2020/08/08(土) 09:32:40.91ID:hMmkStZ70
この先ずっと1.8を使い続けなければならないのか、そこが不安なんですけど。
最新のJDKで使えるようにする方法があるのか、または今後修整されるのか、そこはどうなんでしょうね。
462デフォルトの名無しさん (ワッチョイ 1361-I3qO)
垢版 |
2020/08/08(土) 14:56:25.41ID:HH2BebFt0
$JAVA_HOMEで簡単にJVM/JDKを切り替える方法も覚えておくといい。
463デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:37:08.18ID:f7NhkLiO0
JavaEEってなんか他の団体に寄贈されたんだろ?

まだ、使ってるところあるのか?SpringFrameworkとかすげえつかわれてんのか?

俺はその昔、JavaとかOracleだけで覚えるのが精一杯だったのに、さらにStrutsとかEEサーバーとか
弄くらされて頭パンクしてから、もうホントJavaは嫌になった。

JSP(JSTL)とサーブレットだけのシンプルな奴で勘弁してくれてほんとに。
464デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:38:37.76ID:f7NhkLiO0
Websphereとかはまだいいけど、JBossとか死んでくれて。まじで。
465デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:40:44.44ID:f7NhkLiO0
ApacheとかTomcatとかフリーウェアはノイローゼの元にしかならんかったな・・・

素直にマイクロソフトに従ってれば良かったわ。当時はASPだった。まだ、ドットネットはなかった。
466デフォルトの名無しさん (ワッチョイ 1b01-h+bK)
垢版 |
2020/08/08(土) 23:42:11.59ID:ifN2bgU40
>>465
渋いね、生のサーブレットと生のASP
シンプルで良い
467デフォルトの名無しさん (ワッチョイ 533c-wHtq)
垢版 |
2020/08/08(土) 23:42:29.12ID:f7NhkLiO0
JavaFXが廃止になって、「今もっともモダンなGUIプログラミングSWING」みたいな本が
CUTTSYSTEMから出てるのは爆笑を超えて呆れ果てるしかない。
2020/08/09(日) 01:31:59.05ID:8UfVx4ijM
最近出た本がそれ↑? Kotlinじゃなくて?
えーと、つまりまとめて

Java1.8まで:サンマイクロソフト

Java9以降:オラクル

嫌がらせって事でFA?
2020/08/09(日) 07:19:36.75ID:xuz2Z0h20
意味が分からん
470デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/09(日) 08:26:58.44ID:sHgnidrN0
class studentCard{
int id;
String name;
int age;
}
public class lesson22{
static void PCI(studentCard card){/*studentCardのインスタンスの参照をcardという変数で受け取る*/
System.out.println("IDは"+card.id);
System.out.println("名前は"+card.name);
System.out.println("年齢は"+card.age);
}
static void CCI(studentCard card){
card.id = 0;
card.name = "未定";
}
public static void main(String[] args) {
studentCard a = new studentCard();
a.id = 1234;
a.name = "KK";
a.age = 18;
PCI(a);
CCI(a);
PCI(a);
}
}
実行結果が
IDは1234 名前はKK 年齢は18
IDは0 名前は未定 年齢は18
こうなるんだが
PCI(a);
CCI(a);
PCI(a);←これが動いてないのはなぜ?
2020/08/09(日) 09:34:06.62ID:rCBAkheA0
試しにCCI(a);をコメントアウトしてみ
2020/08/09(日) 09:49:35.86ID:xuz2Z0h20
PCI = Print Card Instance
CCI = Clear Card Instance
かな

CCIを呼び出すとIDと名前がクリアされるからその後のPCI呼び出しではID 0、名前 未定が表示されるのは正しい

ていうかこれで何を学ばせたいんだろうな
出題してる先生もあまりプログラミング分かってないんじゃないか
2020/08/09(日) 10:35:55.80ID:M7hSzY+b0
public classだとインスタンス作んないでいいんだっけ?
2020/08/09(日) 10:44:39.46ID:0YrfFsHe0
1回しかnewしていないんだから値を変えたらメソッドを跨いでも変更は反映されたまま
参照渡しと値渡し的なものの不理解をはっきりさせるコードだな
2020/08/09(日) 10:44:55.22ID:0YrfFsHe0
staticメソッドはインスタンス要らない
2020/08/09(日) 11:15:33.82ID:rCBAkheA0
そこじゃなくて
2回目のPCIがなぜ動いていないと思ったのかじゃないの
477デフォルトの名無しさん (テテンテンテン MM8b-/Jt2)
垢版 |
2020/08/09(日) 11:24:38.12ID:vWm9zQuTM
意味が分からん
2020/08/09(日) 11:39:04.17ID:0YrfFsHe0
「動いてない」というのは間違ってて
「期待した値とは違う値で動いてる」というのが正しい理解
些細な言葉尻の問題のようで意外と大事なこと

そのうえで、期待した値と違う理由は上で説明した通り
2020/08/09(日) 12:52:08.63ID:rCBAkheA0
余計な事を言って混乱させる前に
動いていないとは?からが重要
480デフォルトの名無しさん (ワッチョイ 13a5-w77N)
垢版 |
2020/08/09(日) 13:11:00.89ID:r8wfwf1H0
・CCIでageを消去してない
・そもそもカードの中身を書き換えて新しいカードを作る・使い回すってのはおかしい
カードそのものの破棄をしないと学生証としてはヤバい
ならメンバが全部finalになってないとダメ

Javaは全て参照ってのを言いたいんだろうけど、例題が悪すぎる
2020/08/09(日) 13:18:27.81ID:xuz2Z0h20
クラス名がstudentCard(小文字で始まってる)
メソッド名PCI,CCIが大文字&省略

こんな先生にJavaを教わってる学生さん可哀想だ
2020/08/09(日) 17:16:04.12ID:vC4/Z0I10
card.id = 0;

こんなこと出来るのかと思ったらこの場合OKなんだな。
構造体代わりに使えるじゃん。
2020/08/09(日) 20:36:14.52ID:EsmywIKu0
構造体としてイメージしてるなら
>>470の課題作った人はC言語出身なのかもね
484デフォルトの名無しさん (ワッチョイ 13ad-Jb2s)
垢版 |
2020/08/10(月) 00:30:07.27ID:Z7zFlWuQ0
>>470
動いてんじゃん
485デフォルトの名無しさん (ワッチョイ 13ad-Jb2s)
垢版 |
2020/08/10(月) 00:31:24.71ID:Z7zFlWuQ0
>>473
そんなことはない。
何かと勘違いしてないか?
2020/08/10(月) 00:47:30.16ID:YVjKPj0t0
>>485
>>475で回答いただきました
ありがとうございます
487デフォルトの名無しさん (ワッチョイ e122-Ea0s)
垢版 |
2020/08/10(月) 07:43:05.88ID:YjzD0LUA0
「serialVersionUIDが定義されていません」
これの解決方求む(・ω・)
Qiitaの記事見てもよくわからなんだ
ただ動作は普通にしてるし無視してもいいのだろうか。
488デフォルトの名無しさん (ワッチョイ 1361-I3qO)
垢版 |
2020/08/10(月) 08:22:27.86ID:vvFDA/fb0
>>487
そのクラスをデータ(フィールド)の運搬役として使わないと断言できるなら無視していい。
詳しくはSerializationで調べる。
2020/08/17(月) 10:18:22.10ID:E4in+sPc0
>>487
ObjectXXXputStream()?
コードないとどーもわからん
2020/08/17(月) 11:40:31.07ID:NfdS9Mmq0
何もわからなくて不安な場合はおまじないでこれ書いておけばイイよ
private static final long serialVersionUID = 1L;
手抜きだけど、シリアル化を積極的に活用していない場合これでまず問題ない
2020/08/17(月) 14:53:10.42ID:Sn2sMCzX0
それを書くよりは@SuppressWarnig("serial") のほうがよい
2020/08/17(月) 16:01:27.48ID:NfdS9Mmq0
1Lは単に警告を消すだけのおまじないではないよ
省略すると、異なるVM間でのやりとりで望まない例外が出るケースもある
起こってから対処してもいいから、心配性でないなら無視が手っ取り早いのは確か
2020/08/17(月) 16:36:37.08ID:Sn2sMCzX0
クラス構成が変わるとシリアライズした結果のバイト列も変わる
クラス構成を変えたらUIDも変える
これで異なるクラスバージョンで直列化・復元がおこなわれないようにチェックできる
UIDを-1に固定するというのはクラス構成が変わっても直列化互換性がありますと宣言していることになる
訳も分からず -1 を指定するのはオススメしない
むしろIDEでランダムUID振ったほうがいい
494デフォルトの名無しさん (ワッチョイ 4601-gKdG)
垢版 |
2020/08/17(月) 16:57:43.98ID:4e6PsksO0
シリアライズすることなんて一生無いだろ
2020/08/17(月) 17:09:18.96ID:Sn2sMCzX0
たしかに
他のホストに送るとか長期的に復元したいならJSONとか汎用フォーマット使ったほうがいいからね
でもAndroidだとアクティビティの状態保存でシリアライズ多用するぞ
2020/08/17(月) 21:13:19.56ID:yvXNt/LA0
俺、ubuntu使いだけど、JavaFX始めるのOpenJDKとかOracleJDKとかめっちゃ苦労した。

で、liberikaJDKとかいうの入れたら一発でコンパイル&実行できるようになった。

OpenJDKとかOracleのJDKはなんであんなにJavaFXを使いにくくしてるのか?
今どきSwingを使えというのか?ちょっと考えてくれ。
2020/08/17(月) 21:25:54.94ID:yvXNt/LA0
Ubuntuで音楽再生ソフトとか簡単なやつ作るのにJavaFXがちょうどいいんだよ。

WindowsはC#で作ったけど、Ubuntuだと適当なのなくてPythonとかも音楽周りは以外に面倒であとはQtQuickとか割と良さそうだけどそうでもないし、JavaFXが一番いいんだよ。

SwingでつくるならJMFだったかそんなん使わないとだめだろ?

頼むて!
2020/08/17(月) 21:51:12.51ID:Sn2sMCzX0
俺もJavaFX好き
LibericaJDKの他にZuluもOpenJFXをバンドルしたJDKを配布してる
2020/08/18(火) 01:04:06.79ID:hdiJWVQEM
>>496
JavaFXは公式には既に廃止されている
500デフォルトの名無しさん (ワッチョイ 42ad-1fRW)
垢版 |
2020/08/18(火) 06:15:34.39ID:dt1Ebxxn0
>>499
Javaの実行環境に含めて一緒に配布するのを止めただけでは?
501デフォルトの名無しさん (ワッチョイ c261-QlkZ)
垢版 |
2020/08/18(火) 07:31:04.85ID:BimbjRax0
JavaFXってPure Javaだっけ?
2020/08/18(火) 07:38:03.82ID:M2QC6gPH0
Pure Javaってなんだっけ?
ネイティブコード使わないんだっけ?
もしそうならJavaFXはPure Javaではない
レンダラーとかDLL/SOだらけだよ
だからJavaFXが提供されているプラットフォームでしか動かない
2020/08/18(火) 08:46:58.64ID:aT4tVeUSM
Pure Javaの条件は、Javaの標準APIのみを使用していること
標準APIの中で用いられているネイティブコードはノーカン
そしてJavaFXはもう標準ではないのでPure Javaではない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況