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

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

ぼくたちのKotlinにはonEachがある

#Javaでたまに見る
“`java
List updated = list.stream().map(ele -> {
ele.setFoo(“bar”);
return ele;
}).collect(Collectors.toList());
“`
なるほど、
1. listの各要素のプロパティを更新
2. **変更後の要素そのもの**を格納したリストを返す
ということがやりたい訳ですね。

**…コットリ~~~~~ン!!!!!!!**
# KotlinにはonEachがある
“`kotlin
val updated = list.onEach{ ele -> ele.setFoo(“bar”) } // { it.setFoo(“bar”) } でもイケる
“`
####Kotlinの世界に来たら1行や!!
**onEach** は返り値ナシ相当の `forEach` とは違い、実行後にメソッド呼び出し元のcollectionのインスタンス(の参照)を返してくれます。**スゴイ・ステキ**

#####Kotlinにもmap

元記事を表示

【Java入門】Handling Exceptions(例外処理)

![2021-08-12_14h33_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/a72b8d6c-edb3-23e0-b02e-0f1dc79baafd.png)

#もくじ
>**1,Handling Exceptions
2,Another example
3,Using a finally Block
4,Catching FileNotFoundException
5,Throwing Your Own Exceptions**

#1, Handling Exceptions

**Here’s a program that divides two number and uses a try/catch statement to catch an exception if the second number turns out to be zero.**

“`java:Main.java
public class Main {

public static v

元記事を表示

【解説付き】Java標準APIで画像処理(4) – 判別分析法 –

#はじめに
Javaの標準APIだけを使って基本的な画像処理を実装していきます。
簡単ではありますが、必要な用語などの解説もつけていく予定です。

進めていくにあたり「画像処理100本ノック!!」を参考にさせて頂きました。

https://github.com/yoyoyo-yo/Gasyori100knock

[←前記事 (3) 二値化](https://qiita.com/Sigmay/items/15883f4cc720b7ccfe44)
次記事→ (4) 現在作成中!

#判別分析法とは?
二値化のしきい値を自動で決める手法の一つです。
別名として大津の二値化という名称もよく知られています。

どういう方法かというと、二値化した時の画像の白黒のバランスが良くなるように計算します。
具体的には白画素と黒画素のクラス内分散を小さく、かつ、クラス間分散を大きくするようにしてくれます。
画像ヒストグラムを想像するとわかりやすいと思います。

#画像ヒストグラムとは?
画像ヒストグラムとは画像内の画素数を、画素値ごとにカウントしたグラフです。
グレースケール画像の場合、横軸が0から2

元記事を表示

VSCodeでTomcat for Javaが起動できない

#vscodeでTomcat for javaが起動できない

Tomcat for Java で下記のようなエラーが出て解決策を見つけたので書きます。

![スクリーンショット (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893794/d1c0c54e-9c96-4927-6141-924ffb092ad5.png)

これは、java.home(vscodeの設定)のjavaファイルが**OS(C:)**の下に置いていないのが、原因です。

windowsのファイルパスがTomcatサーバーでうまく読み込まれないのが主な原因みたいです。
>上記の文は、https://teratail.com/questions/291816より引用

なので、

**<修正前>**
![スクリーンショット (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893794/9d2f5236-d5b1-c324-f20d-

元記事を表示

【解説付き】Java標準APIで画像処理(3) – 二値化 –

#はじめに
Javaの標準APIだけを使って基本的な画像処理を実装していきます。
簡単ではありますが、必要な用語などの解説もつけていく予定です。

進めていくにあたり「画像処理100本ノック!!」を参考にさせて頂きました。

https://github.com/yoyoyo-yo/Gasyori100knock

[←前記事 (2) グレースケール化](https://qiita.com/Sigmay/items/1a5ce305c348a322ebae)
次記事→ (4) 現在作成中!

#二値化とは?
名前の通り、画像を0と1の二値に変換する処理です。
なお、処理によっては1ではなく255を設定することもあります。

二値化された画像は白と黒の二色だけで構成されます。
下部の例を見て頂いた方が理解しやすいかと思います。

この変換は領域分割や境界線抽出などの前処理としてよく用いられます。
白黒はっきりつけることで、画像の解析がしやすくなると理解しておけば十分です。

#どうやって二値にするの?
画像を二値化するにはしきい値というものを用います。
処理としては単純で、画素値がしきい

元記事を表示

gRPCのEnumを必須チェックしたい

人の欲は尽きない。

# やりたいこと
gRPCのリクエストでEnum型のフィールドが送られてきたかどうか、必須チェック(Nullチェック)したい。

# 前提
Enumのfield number 0番は、Nullとして弾く。
⇒なぜなら、リクエスト内部でNull/未設定の場合に初期値として0番が入ってくるので、0番にプログラム上の意味を持たせると、0番が明示的に送られてきたのか空だったのか区別がつかないから。

# 準備
Enum値を持ったAPIを用意します。

“`Sample.proto
syntax = “proto3”;

package sample;
option java_package = “jp.co.your.project”
option java_outer_classname = “SampleProto”

import “google/protobuf/empty.proto”;

service SampleService {
rpc getType (SampleRequest) returns (google.protobuf.Empty)

元記事を表示

[Java] AWS Lambda + API gateway + S3でjsonファイルをいじるだけ(1)

# やりたいこと
自分のS3バケット上にjsonファイルを作ったり、中身を書き換えたりできるapiをlambdaとapi gatewayつかって作る予定です!!言語はjava11です!!!
**といっても今回はlambda動かすところまで。**

s3とかapi gateway周りは次回(あるといいな)

# 環境
– windows 10
– java11
– gradle
– intelij idea community

# リージョンについて
僕の場合、lmabda、api gatewayはオハイオ(us-east-2)で作成しました。
場所は多分どこでもよいと思いますが、**両方とも揃えないと連携できない**気がします。
S3はリージョン指定できないので気にする必要ないです。

![Inkedスクリーンショット 2021-08-12 104325_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240124/84bea0f3-49cd-e8dd-59fd-6c8c86a452af.jpeg

元記事を表示

Java入門[インスタンス化]

##オブジェクト指向

私は`部品化していく考え方`と認識しています。

例えばラーメン屋をつくるのであれば
最低でも

– ガスコンロ
– 冷蔵庫
– 炊飯ジャー
– 作業台
– 洗浄機
– 茹で麺機

などなどが必要になってきます。

ラーメン屋というものから、一つ一つ部品化していくことも、オブジェクト指向の考え方に繋がるのではないかと思います。

「オブジェクト指向とはなんぞや」を考えるのも大事ですが、定期的に思考を見直すくらいでいいのかなと個人的には考えています。

今回はオブジェクトのつくり方を簡単にまとめていきます。

###インスタンス

`クラス名 変数名 = new クラス名();`で生成できます。

そもそも`インスタンス`とは、クラスという型を`具現化`したものになります。

以下の記事は視覚的にもわかりやすいです。

https://atmarkit.itmedia.co.jp/ait/articles/0803/12/news148.html

たいやきの型(クラス)があるからこそ、同じ形のたいやきを作れる。
更には味を変えることだってできますね。

では、サ

元記事を表示

【解説付き】Java標準APIで画像処理(2) – グレースケール化 –

#はじめに
Javaの標準APIだけを使って基本的な画像処理を実装していきます。
簡単ではありますが、必要な用語などの解説もつけていく予定です。

進めていくにあたり「画像処理100本ノック!!」を参考にさせて頂きました。

https://github.com/yoyoyo-yo/Gasyori100knock

[←前記事 (1) チャネル入れ替え](https://qiita.com/Sigmay/items/f5d32a9932b42e185bc2)
[次記事→ (3) 二値化](https://qiita.com/Sigmay/items/15883f4cc720b7ccfe44)

#グレースケール画像とは?
一言でいうと白黒画像です。
プリンターなどで白黒印刷を選択すると出てくるあの画像です。

前回、カラー画像は3チャネルで構成されると説明しました。
グレースケール画像はチャネル数が1つとなります。
すなわち、8bitのみで画像を表示することができます。

ただし、画像処理で扱う場合、チャネル数は3のままで表示のみグレースケールにすることもあります。
具体的には各画素値

元記事を表示

@RunWith(PowerMockRunner.class)と@RunWith(SpringRunner.class)の共存方法

## 概要
`@RunWith(PowerMockRunner.class)`と`@RunWith(SpringRunner.class)`を同時に使いたい。
しかし、`@RunWith`には複数クラスを指定することはできない。
そのため、以下のように`@PowerMockRunnerDelegate`を使う。

“`gradle:build.gradle
dependencies {
testImplementation ‘org.powermock:powermock-module-junit4:2.0.9’
testImplementation ‘org.powermock:powermock-api-mockito2:2.0.7’
}
“`

“`java
@PrepareForTest({SampleServiceImpl.class})
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringRunner.class)
@SpringBootTest
public class Sa

元記事を表示

Spring Batch の Tasklet クラスに @StepScope アノテーションを付与して挙動を確認する

## 概要

– Spring Batch の Tasklet に @StepScope アノテーションを付与して挙動を確認する

## Step スコープと @StepScope アノテーション

Bean 定義でスコープを指定しない場合は Singleton スコープになる。

[Spring Framework 5\.3\.9 コアテクノロジー \- リファレンス](https://spring.pleiades.io/spring-framework/docs/5.3.9/reference/html/core.html#beans-factory-scopes)

> singleton
> (デフォルト)Spring IoC コンテナーごとに、単一の Bean 定義を単一のオブジェクトインスタンスにスコープします。

[Spring Framework 5\.3\.9 コアテクノロジー \- リファレンス](https://spring.pleiades.io/spring-framework/docs/5.3.9/reference/html/core.html#bean

元記事を表示

[JAVA] JPAで1対Nで中間テーブルのあるDBをModelに落とし込む

## Table構成
usersテーブルとrolesテーブルが1対Nの関係であり、中間テーブルがある構成。
![ER.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/105936/bda80a33-a07d-6f28-f12e-c5fc83279f85.png)

### users

“`sql
Table “public.users”
Column | Type | Modifiers
———-+————————+———————————————————-
id | integer | not null default nextval(‘users_id_seq’::regclas

元記事を表示

WEB開発未経験者のSpringBoot学習のメモ

私はPHP, Laravelで簡単にアプリケーションを作成したことがありますが、今回Java, SpringBootを初めて学習することになったのでメモを残しておきたいと思います。
※この記事は、ただのメモです。

## Gradleとは
ソースコードのコンパイル、テストを実行してレポートを出力するクラスファイルのアーカイブ生成、アーカイブをステージングにリリースするなど定型的な作業を自動化するソフトウェア。
Mavanとどちらかで使用されることが多い。

## POJO
Plan Old Java Object

## DI(Dependency Injection)
ソフトウェアのデザインパターンの1つ。
DIコンテナで生成したクラス。
newをいちいちしなくていい。

### メリット
– 単体テストがしやすくなる
– インスタンスのスコープ(生存期間)を制御できる。
アノテーションをつけたクラスはDI管理ができる。

@Component
@Controller コントローラの役割を担うコンポーネント
@Service ビジネスロジックを提供するコンポーネント
@R

元記事を表示

【Java】ビンゴカード作成問題を解く

 僕は現在Javaを勉強中です。ということで過去にRubyで解いた問題をJavaで解いてみることにしました。RubyもJavaもまだ初心者であるため、コードの可読性は高くなく、まずは動くだけのプログラムを作ることに努めています。ご意見いただけると非常に勉強になります。

 今回解いた問題はビンゴカード作成問題です。

https://qiita.com/kim-shun/items/0c862ff71e61648cd346

B:1~15のどれか
I:16~30のどれか
N:31~45のどれか
G:46~60のどれか
O:61~75のどれか

“`
B | I | N | G | O
13 | 22 | 32 | 48 | 61
3 | 23 | 43 | 53 | 63
4 | 19 | | 60 | 65
12 | 16 | 44 | 50 | 75
2 | 28 | 33 | 56 | 68
“`

 このような出力結果を得たいという問題になります。僕は以下のようなコードでこの問題を解きました。

“`java
package example;

im

元記事を表示

Scanner.nextInt()の落とし穴

###Scanner.nextInt()の落とし穴
これはあまり参考書などに載っていなくて、ちょっと苦労したコードの落とし穴を記事として記しておきます。
もし、同じような落とし穴にはまってしまった人の参考になれば幸いです。

###エラーの内容
以下のようなコードを実行すると、

“`
あなたの年齢は?
44
あなたの名前は?
あなたの名前: あなたの年齢は: 44
“`
年齢を入力したあと、間髪入れずに

あなたの名前は?
あなたの名前: あなたの年齢は: 44

と表示されてしまいます。

###エラーの理由
これは、整数を入力したあとのエンターキーの入力がStringとして残っていて悪さをしてしまいます。そのため、
整数を入力したあとのエンターキーの入力を処理する必要があります。

### 該当するソースコード
“`java
import java.util.Scanner;

public class Main {
public static void main(String[] args) throws Exception {

Sca

元記事を表示

Eclipseの使い方

### はじめに
この記事ではMac における初心者が使いながら便利だと思ったEclipseの機能を書き足して行こうtと思っています。
自分の備忘録を兼ねた記事です。
まだ、書き途中なのでご容赦ください。

###Eclipseのコンテンツアシスト
変数名やメソッド名、クラス名などを補完してくれる。スペルミスを防ぐためにも使った方がいい。
preferance → java → コンテンツアシスト

###コンストラクターやゲッター、セッターの設定

コンストラクターやゲッター、セッターの設定は自動生成することができます。
右クリック  →  ソース  →  フィールドを利用してコンストラクターの生成
右クリック  →  ソース  →  getter および setter の生成

###equalsメソッドの自動生成
右クリック  →  ソース  →  hashcodeおよびequalsの生成

###toStringメソッドの自動生成
右クリック  →  ソース  →  toStringの生成

###テンプレートの一覧
設定のJava→エディター→テンプレート

### Com

元記事を表示

Java Excel フィルターの作り方

Excelでは、フィルター機能を利用することで、指定したデータのみを表示したり、取り出したりすることができます。今回はFree Spire.XLS for Javaという無料のライブラリを活用して、Excelでフィルターの作り方を紹介します。

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。

f:id:lendoris:20210811122545p:plain

元記事を表示

[Java] Microsoft Word のプロパティを設定

Wordプロパティは、ファイルの内容を示し、そのファイルを特定するためのものです。 ドキュメントのプロパティには、タイトル、作成者名、件名などのほかに、ドキュメントのトピックや内容を特定するキーワードがあります。今回はSpire.Doc for Javaというライブラリを使ってWord プロパティを設定する方法を紹介していきます。

 下準備

1.E-iceblueの公式サイトからFree Spire.doc for Java無料版をダウンロードしてください。

</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>設定</div>
<div class='tag-cloud-link'>Word</div>
<div class='tag-cloud-link'>プロパティ</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/9bab6a6ce4e7d0c2d8ad'>元記事を表示</a></div>
<h3 id=Java入門[packageとimport]

前回のメソッドは、同じディレクトリ(ファイル内)のクラスから使用することもできます。

“`java:matome/Main.java
public class Main {
public static void main(String[] args){
System.out.println(Calc.tasukake(3,2));
System.out.println(Calc.hikuwaru(4,2));
}
}

// 10
// 1
“`

“`java:matome/Calc.java
public class Calc{
public static int tasukake(int a, int b){
int tasu = a + b;
return (tasu * 2);
}
public static int hikuwaru(int a, int b){
int hiku = a – b;
return (hiku / 2);
}
}
“`

Main.javaでは出力結果を表示させる

元記事を表示

キャストに触れてみた!

今回はキャストについて説明していこうと思う。

**キャストとは**
型を変換すること。例えばint型をdouble型に変換など。
※int型→整数まで扱える
※double型→整数〜少数まで扱える

整数までしか扱えないものを整数〜少数まで扱えるものに変換するのは?‍♂️
扱える範囲が狭いものから範囲が広いものに変換。
**これを拡大変換という**

コードだと下記のようなものになる。

“`Java
public class Main {
public static void main(String[] args){
double doubleA = 1234.5678;
int intA = 12345;
doubleA = intA;
System.out.println(doubleA);
}
}
“`

3行目でdouble型の変数をdoubleAに代入。
4行目でint型の変数intAに代入。
5行目でintAの値をdoubleAに代入。

では扱える範囲が広いものから狭いものに変換することができ

元記事を表示

OTHERカテゴリの最新記事