JAVA関連のことを調べてみた2020年08月31日

JAVA関連のことを調べてみた2020年08月31日
目次

JavaでTODOアプリを制作しよう6 検索機能の実装

こんにちは。今回はSpringで検索機能の実装を行いたいと思います。

## TODOアプリ作成リンク集
[1: MVCの簡単な説明](https://qiita.com/nomad_kartman/items/bce2f4831b7b769f84f2)
[2: Spring Initializrで雛形を作ってHello worldしたい](https://qiita.com/nomad_kartman/items/e173ea95b3ead96a412a)
[3: MySQLに仮のデータを保存 -> 全取得 -> topに表示する](https://qiita.com/nomad_kartman/items/f5f13037f048eeecf492)
[4: 投稿機能の実装] (https://qiita.com/nomad_kartman/items/113cdfc3c5cd1f5c0cef)
[5: TODOの表示を切り替える] (https://qiita.com/nomad_kartman/items/c86f77c0435962b9ca37)
6: 検索機能の実装(今ここ)

元記事を表示

[Java] 条件分岐

#if文
 if文は数値や文字列などの評価(比較)結果を判定します。評価結果が「true(真)」の場合、ifブロック内の処理が実行されます。評価結果が「偽 (false)」 の場合はelse文を組み合わせます。

“`
if( 条件文 ) {
// 条件文が真 (true) のときにここが実行される
}
else {
// 条件文 が偽 (false) のときにここが実行される
}
“`
 if文など、処理分岐するためには条件を判定する必要があります。判定のことを「評価」と呼びます。

##関係演算子

![関係演算子.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646368/0e286b4c-f331-0b89-1311-879360d4e46f.png)

##論理演算子

![drow.io.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/646368/0e3126f7-94e5-c1cb-

元記事を表示

KotlinとC#からみたJava言語

# はじめに

「KotlinとC#からみたJava言語」というタイトルからは、KotlinやC#に詳しい人間が、Javaを体験してみた結果の報告というようなものを期待する人もいると思うのだが、これはそうした文章ではない。JavaもC#も遊び程度に触ったことがある人間が『Kotlin In Actin』という本に刺激を受けて(また、業務都合でC#の本も一冊読んで)書いたものだ。この本は大変面白い本で、Kotlinの知識だけでなく、Java言語についての見識も深めることができた。

本稿はその知見を、プログラミング言語について考える材料になるのではないかと思い、残すものだ。

# Javaの弱点

なぜKotlinやC#を勉強するとJavaの知見が得られるのか。それは両言語ともにJavaを大いに参考にし、それをもっと使いやすくするために設計された言語だからだ。そのため両言語が補った部分を見ると、逆にJavaの何を弱点として認識したのかが分かる。

では一体Javaの弱点とは何なのか。沢山あるのだが、ここでは、①値型定義機能の欠如、②仮想関数の継承、③NULL安全の欠如の3つに絞ることにす

元記事を表示

担当したPJの単体テストが地獄絵図だったので独自に作成したガイド(?)を公開する

# はじめに
こんにちは, ねげろんです。

2020年上期にとあるJavaの開発案件にアサインされたのですが, 自分含めメンバが作成したUTコードが __カオスここに極まれり__ でした。

例えば,
・JUnit4とJUnit5のコードが混在しているテスト
・何もassertせずにただメソッドを呼んでいるだけのテスト
・成功するときと失敗するときがある再現性がないテスト
・ステータスコードが200だろうが404だろうが500だろうが成功してしまうモックを使った正常系テスト
などなど・・・。

本PJは追加機能実装のため下期も開発を継続するのですがこのままではまずいと思い,
先輩社員の方に相談のもと単体テストのガイド(?)を作ることにしました。

本記事ではそのガイドを公開します。

ただし, 上述したような __混沌とした現場__ のためのガイドであるということをご承知おきください。

また筆者自身も単体テストに精通しているわけではありません。
もし「もっとこうしたほうがいいよ!」や「それは間違っている!」みたいな意見がございましたら是非コメントに書いていただければと思います!

元記事を表示

bootstrap-selectで作ったセレクトボックスを活性化できないときの対応方法

– 環境
– CentOS Linux release 7.8.2003 (Core)
– openjdk version “11.0.7” 2020-04-14 LTS
– JSF 2.3.9
– jquery 3.2.1
– bootstrap 4.3.1
– bootstrap-select 1.13.14

# 事象 : bootstrap-selectで作ったセレクトボックスを活性化できない

1. 初期表示時にセレクトボックスを非活性にする
1. チェックボックスを変更すると`onchange`イベントでセレクトボックスの活性非活性を切り替える

はずが活性化しない・・・・
![a.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159761/09dac3cf-d89e-3516-3048-b81f823c8e64.gif)

“`xml:XHTML


元記事を表示

逆コンパイルして理解する、Java視点からのScala入門(基本編)

この記事は富士通システムズウェブテクノロジーの社内技術コミュニティで、「イノベーション推進コミュニティ」
略して「いのべこ」が企画する、いのべこ夏休みアドベントカレンダー 2020の14日目の記事です。
本記事の掲載内容は私自身の見解であり、所属する組織を代表するものではありません。
ここまでお約束 😉

# はじめに

この記事は、Scalaを始めたJavaプログラマが、Scalaをコンパイルして生成されたclassファイルを逆コンパイルし、
Java的な観点からScalaを理解したいなと思いついて始めたものです。

基本的な流れは以下の通りで進めていきたいと思います。

* [docs.scala-lang.org/ja](https://docs.scala-lang.org/ja/)の「TOUR OF SCALA」を見ながら、scalaコードを写経する
* [jd-gui](http://java-decompiler.github.io/)というJava Decompilerを使用してclassファイルを逆コンパイルする
* 逆コンパイルしたソースコードを眺めて、あ

元記事を表示

新卒SESの備忘録 【Java オブジェクト指向編】

#【Java オブジェクト指向編】

新人研修時のJava オブジェクト指向のメモです。

##オブジェクト指向(プロパティ、メソッド) 

部品化の考え方であり、「人間が把握しきれない複雑さ」を克服するために考えられた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/472549/8d4fea25-4675-94c9-be92-bbaf44bcdb8d.png)

“`java
//①
public class Car{
String maker
int displacement
String color

void start(){
System.out.println(“発進”)
}
void turn(){
System.out.println(“曲がる”)
}
void stop(){
System.out.println(“停止”)
}
}
“`
“`java
//②
public class TestCar

元記事を表示

Effective Java 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使う

Effective Javaの独自解釈です。
第3版の項目70について、自分なりにコード書いたりして解釈してみました。
# ざっくり
「回復可能」とは、例外が発生してもカレントスレッドを停止させず、別の制御に状態を戻せること。例外が発生する可能性をメソッド実装者が認識しているので、チェック例外を出力し、メソッドの呼び出し元にハンドリングを強制させる。
「プログラミングエラー」とは、メソッドが実装者の禁止している使われ方で使われ、カレントスレッドを停止させる必要があるもの。(一般にキャッチすべきではない)実行時例外を出力させる。
# チェック例外が必要な例
以下のようなサービス層のメソッドを考える。

– 指定したIDの本を購入
– 参照テーブルは「本」「銀行口座」「購入済み本」テーブル
– 「銀行口座」に本を購入できる金額があれば、「購入済み本」に本を追加し、「銀行口座」の残高を減らす
– 「銀行口座」に本を購入できる金額がなければ、残高不足例外を出力

※ テーブル定義などは省略しています。

**本購入メソッド**

“`java

/**
* 指定したID

元記事を表示

SXSSFWorkbookを利用する際の個人的な注意点 (行単位のアクセス単位は避けたほうが無難 / 既存のxlsxファイルで書き込み済みの行にはアクセスできない)

# 概要

Apache POIでXSSFWorkbookを利用する場合、頭をもたげてくるのはメモリ問題。XSSFWorkbookは読み込んだデータや書き込んだデータをすべてメモリ上に展開します。そのため、大きなサイズのExcelを作ったり読んだりするときはよくよく注意しないと、OutOfMemoryErrorを起こしがちです。

Apache POIではこのXSSFWorkbookのメモリ食いすぎ問題に対応するため、SXSSFWorkbookという、全データをメモリには展開せず、一時ファイルに書き出すことで、メモリ消費量を節約するAPIが用意されています。XSSFWorkbookと同じWorkbookインターフェースを実装しているので、

“`java
Workbook book = new XSSFWorkbook();
// ↓
Workbook book = new SXSSFWorkbook();
“`

というように、実装クラスだけ差し替えて、メモリ消費量節約を実現した気になることが多いのですが、SXXFWorkbookには利用上の注意点があります。

# 1. 行単位

元記事を表示

JavaFX + IntelliJ + Scene BuilderでGUIアプリケーションを作るサンプル

# はじめに
GUIアプリケーションを作りたいと思いました。GUIアプリを作るためのライブラリやフレームワークは色々ありますが、個人的には一番得意なJavaで作れたらいいなと思い、JavaFXを使って開発するための環境構築をしてみました。
~~サンプルを作っただけで満足しちゃったけど!~~

肝心なところは他の記事に丸投げするクソ記事ですのでご注意ください。
でも、他の記事に書かれているのと同じことをそのまま書くのは色々とアレだと思うので仕方ないのではないかと(言い訳)

ソースはこちらです。
https://github.com/dhirabayashi/javafx_sample

# 超適当な用語説明
## JavaFX
* Javaでいい感じのGUIアプリを作れるライブラリ
* もともとはRIAのライブラリだったが、~~RIAがオワコンになったため~~今は普通のGUIライブラリになっている
* 今はJDKに同梱されなくなったので、OpenJFXを別途導入する必要がある(Gradleがいい感じにやってくれるけど)

## IntelliJ(IntelliJ IDEA)
* Jav

元記事を表示

AtCoder Beginner Contest 177 C問題「Sum of product of pairs」解説(Python3,C++,Java)

注意)解答例はPython3のみ出来ております。C++,Javaの方は「全ての提出」からコードを見て実装することをおすすめします。

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 C問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中|準備中|この記事です|

#問題概要
$N$個の整数$A_1,…A_N$で構成された数列が与えられる。
$1 \leq i < j \leq N$を満たす全ての組$(i,j)$についての$A_i×A_j$の和を$mod(10^9+7)$で求めよ。 問題URL :https://atcoder.jp/contests/abc177/tasks/abc177_c ##制約 ・$2 \leq N \leq 2×10^5$ ・$0 \leq A_i \leq 10^9$ ・入力は全て整数 #解説 $A_1,...A_N$

元記事を表示

【Android 9.0 Pie Java】RecyclerView 長押しで要素毎に内容の変わるコンテキストメニューを表示する

RecyclerViewで要素を長押しして、要素毎に内容の変わるコンテキストメニューを表示する方法の記事が見当たらなかったのでメモしてみます!

↓完成イメージ↓
![7c30d4aa9804094e0e83ddb1b9247cb8.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/85bfd135-43e4-7a80-315c-c2ee6e4e2fd7.gif)

## 実装方法
### コンテキストメニューの表示
Activity or Fragmentに

“`
View.OnCreateContextMenuListener
“`
をimplementsします。

“`java:SampleFragment.java
public class SampleFragment extends Fragment
implements View.OnCreateContextMenuListener {
“`
他にもViewHolderにimplementsするパターン

元記事を表示

AtCoder Beginner Contest 177 B問題「Substring」解説(Python3,C++,Java)

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 B問題の解説をこれから始めます!
A問題,C問題の解説は以下のリンクより見ることが出来ますのでご確認下さい!!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|準備中です|この記事です|準備中です|

#問題概要
文字列$T$が$S$の部分文字列となるように、$S$のいくつかの文字を書き換えます。
少なくとも何文字書き換える必要があるでしょう。
ここでの部分文字列は連続する部分列のことを指します。
例) `’xxx`’は`’yxxxy’`の部分文字列であるが、`’xxyxx’`の部分文字列ではない。

問題URL : https://atcoder.jp/contests/abc177/tasks/abc177_b

##制約
・$S$,$T$は$1$文字以上$1000$文字以下
・$T$の長さは$S$の長さ以下
・$S,T

元記事を表示

AtCoder Beginner Contest 177 A問題「Don’t be late」解説(Python3,C++,Java)

皆さんこんにちは(コンテスト後の方はこんばんは!)Ruteです!

AtCoder Beginner Contest 177 の解説をこれから始めます!

##各問題の解説
|A問題|B問題|C問題|
|—|—|—|
|この記事です|準備中です|準備中です|

この記事では主にA問題「Don’t be late」の解説をします!!

#問題概要
高橋君は青木君と待ち合わせをしています。
待ち合わせ場所は高橋君の家から$D$メートル離れた地点であり、待ち合わせの時刻は$T$分後です。
高橋君が今から家を出発し、分速$S$メートルで待ち合わせ場所にまっすぐ移動するとき、待ち合わせ場所に間に合うかどうかを判定しなさい。

##制約
・ $ 1 \leq D \leq 10000$
・ $ 1 \leq T \leq 10000$
・ $ 1 \leq S \leq 10000$

#解説
待ち合わせ場所に間に合うかどうかを判定すれば良いです。
つまり分速$S$メートルで$T$分移動した距離が、$D$メートル以上になるかどうかを判定すれば良

元記事を表示

新卒SESの備忘録 【Java 基礎編】

#はじめに。

私は、今年4月に新卒でSES企業に入社しました。
現在は、大手SIerにて客先常駐をし、経済産業省の補助事業であるプロジェクトに参画しています。

業務用PCには、自分の個人アカウントなどをログインすることが出来ません。
自分のメモを見ることが出来ないので、Qiitaだと検索して見れるので投稿しました。

#【Java 基礎編】

新人研修時のJavaのメモです。

##・順次、分岐、繰り返し

####どんなに複雑なプログラムでも、順次・分岐・繰り返しの3つの制御構造を組み合わせれば作成可能(構造的定理)

for文は、単純な反復処理に向いている。繰り返し回数が決まっている時など。
while文、複雑な処理が必要な反復処理に向いている。

・for文 繰り返し
 ①初期化処理  int i =0;
 ②繰り返し条件  i < 10;  ③繰り返し時処理 i++ ・while文 繰り返し(~の間は)  →制御構文の構成要素   [条件式]  分岐条件や繰り返しを続ける条件を示した式   [ブロック] 分岐や繰り返しで実行する一連の文の集まり ・switch文 各ca

元記事を表示

2日前の自分をぶんなぐってリファクタリングさせる。

現在とある会社に拾っていただきエンジニアとして研修を受けています。その研修の中で作成したコインゲームの出来がとても悪く講師の方に意見をいただいて修正したものを自分への戒めとして残しておきます。

### 書いたコード
まず書いたコードがこれです。

“`java
public Integer execute() {
if(this.possessionCoin == 0) {
return 0;
} else {
System.out.println(“You have” + this.possessionCoin + “Coin, Start the game? y / n”);
while(true) {
try {
int getCoin = 0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
S

元記事を表示

初心者が、JavaとMySQLでWebアプリ制作(随時、加筆中)

#はじめに
この記事につきましては、前回書いた通り進めております。
[Qiitaはじめました。まずはポートフォリオ作成と就職を目標に。](https://qiita.com/begin_h/items/99efafb8947563d537d1)

過去のWebアプリケーション制作の過程を書いていき、
結果的にポートフォリオとしてまとめることが目標です。

分からないことは率直に記載するので、アドバイスいただけますと幸いです。
初心者が模索しながら、随時加筆しております。(2020年8月24日〜)

#背景
プログラミングスクールで、「Java」「MySQL」「サーブレットとJSP」を学び、
その集大成として、Webアプリケーションを作成することになりました。

グループ協議の結果、【買い物の時に役立つアプリ】を作ることに決めました。

私自身、買い物のたびに、
「あれ、洗剤ってなくなりそうだったっけ?他に何かストック切れのもの無かったっけ?」
と思うことに、わずらわしさを感じていたことがきっかけです。

日常的な課題を解決するアプリ制作を通して、プログラミングへの理解を深めようと思いま

元記事を表示

[Java]Collectionへの要素の追加をコンパイルエラーにする

JavaのCollectionは、中身が変更できるかどうかは実装に委ねられています。
そのCollectionが変更できるかどうかは、ソースコードを確認するか、実際に動かしてみるまでわかりません。

例えばListインターフェースのjavadocには、次のように記載されています。

– [日本語](https://docs.oracle.com/javase/jp/11/docs/api/java.base/java/util/List.html#add(E), “日本語”)

> UnsupportedOperationException – addオペレーションがこのリストでサポートされない場合

– [英語](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html#add(E), “English”)

> UnsupportedOperationException – if the add operation is not supported by this lis

元記事を表示

3年目の今、気がつかされた誤解equalsメソッドと==の違い

# **誤解してました。**
今から、大体3年前くらい・・

言語のげの字も知らないような知識空っぽでJAVAでの開発プロジェクトに参画したとき・・

JAVAの教科書で学びながら、開発案件でセコセコ、コーディング・・

プルリク・・ダメ出し・・教科書・・修正・・プルリク・・ダメ出し・・修正・・google・・ダメ出し・・

そんな状態で働いてました。

そのとき、先輩に言われた一言・・

ずっと、脳裏に残っているのでしょうね。

### **Stringの比較は、equalsメソッドを使ってね。**

先輩の一言は正しいです。

だけど、日本語は難しい・・

ほんの少しの捉え方で、悪くも、善くもなるようです。

思わぬことに、こんな風に覚えちゃったんです・・

**「Stringの比較は、equalsメソッドを使ってね。」 == 「Stringの比較の時だけequalsメソッドを使う。」**

それから数ヶ月して、Oracle認定の

元記事を表示

MPAndroidChartで棒グラフを作ったらx軸ラベルがなぜかずれた話

#はじめに
たまたま機会がありAndroid Studioを用いて簡単なアプリ開発を行いました。
その中でグラフを書きたいと思い調べたところ「MPAndroidChart」というライブラリを用いればいいことがわかり、いくつかのサイトを参考にしながら棒グラフを作りました。
しかしその中でx軸のラベル設定がうまくいかず小一時間ほど苦労したので、その過程と解決策を記しておきます。
(余力があれば後から実際動かした画像も貼りたいところです)

#困った部分

今回の問題に関係ない部分は大分端折っていますが、大枠は以下のような感じ。
こちらの記事を参考にさせていただいています。

『MPAndroidChartでシンプルな棒グラフの作成』
https://qiita.com/iKimishima/items/7fd192a074739cf5290b

“` MainActivity.java
public class MainActivity extends AppCompatActivity {

protected BarChart chart;

@Override

元記事を表示

OTHERカテゴリの最新記事