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

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

[補足] org.mockito.exceptions.misusing.UnnecessaryStubbingExceptionについて

### 背景
以下記事は [[Web/まとめ] JUnit5 で Mockitoを利用する方法](https://qiita.com/northernbird/items/90ca7713aa1be7d8ae54)で理解に若干時間のかかった `org.mockito.exceptions.misusing.UnnecessaryStubbingException` について、実際のサンプルコードを踏まえて、理解の足しにした追加メモである。

###一体どのような時に起こるのか?

#### (復習&まとめ)まずMockitoで何ができるのか?

– Mockitoを利用することで、テスト対象コードが利用する依存サービス (3rd party libraryだったり、実際の実装がわからない interface classだったり)への依存なしでテストを行うことができる。
– 例えば、実際の実装を使わずとも、Mockオブジェクトを定義し、そのMock オブジェクトがどのような結果を返すかなどを、開発者は各テストケースに応じて挙動を書き換える (=定義する)ことができる
– 利用して

元記事を表示

文字列の長さで意図的に例外処理を発生させる

例外処理を使って坂道メンバーの文字数チェックをする。

“`Java
//例外処理を使って坂道メンバーの文字数チェックをする。
// 新規作成 2021/6/23
// Author 乃木坂好きのITエンジニア

import java.util.Scanner;

public class Sakamichi {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
System.out.println(“好きな坂道メンバーを入力してください”);
String line = sc.nextLine();
x(line);
System.out.println(“4文字以上のメンバーを入力しました “);

}
static void x(String name) throws Exception{
int len = name.length();
//メンバーの文字数が4字未満なら例外処理を実行する
if

元記事を表示

Parameter 0 of constructor in XXXDao required a bean of type XXXMapper that could not be found.

myPCで環境構築中に発生したので載せておきます。

####1つ目
SpringBootApplicationのパッケージ構成が宜しくない場合があります。
一つ上の階層に移動させてみたり色々確認してみてください。

“`java:com/example/demo/DemoApplication.java
@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
“`

####2つ目
必要なプラグインが入っていない
maven,gradleに必要なプラグインが入っていない可能性があるので入れましょう
例:mavenでの場合
記載して更新してあげればこれだけで解決する場合があります。
ペースト時に赤字の警告が出るかもですが気にしないで更新かけてみてください

“`yml:pom.xml

元記事を表示

Javaのstreamを使ってみよう!

#streamを使ってみよう

###1. 使用するオブジェクト

class People { 
private String name;
private int age;
private int gender;

public People(String name, int age, int gender) {
this.name = name;
this.age = age;
this.gender = gender;
}

public People(String name, int age, int gender) {
this.name = name;
this.age = age;
this.gender = gender;

}

public String toString() {

return “People(name=” + name + “, age=

元記事を表示

よく聞く「Apache」,「Tomcat」とは?

Apacheと、Tomcatの理解が曖昧なので、自分用の勉強用としてまとめていきます。

それぞれ一言で言うと、
>**Apache:Webサーバ
>Tomcat:サーブレットコンテナ**

それでは、それぞれ解説していきます。

#通信を表した図
![Group 6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1098849/8ea87548-fb5b-c994-bff1-43c06ebfeba5.png)
[参考](https://www.youtube.com/watch?v=kxjrd2faZMM)
訳の分からない用語がたくさんですが、後ほど解説するので、まずは、流れを説明します。

>Webブラウザでアクセス
→httpリクエストを“Apache Webサーバ“に対して送る
→“Apache“は“modJk“というモジュールを使ってAPサーバ(アプリケーションサーバ)にAJPリクエストを送る
→AJPが受け取り、Webコンテナ(サーブレットコンテナ(画面に見せる側))へ
→Web

元記事を表示

Minecraft(マインクラフト、マイクラ)でマルチサーバを立てる手順

## 1. はじめに
Minecraft(マインクラフト、マイクラ)をマルチプレイしたい!と思ったのはいいものの、realmsを購入したり、仮想サーバを契約してそこで動かす等は一々お金がかかります。(大体月額制です)

もちろん、ほとんど毎日マイクラマルチをやる!であったり、常に誰かが入っていたりするというような状況であるならば、こうしたサービスを購入する方が良いでしょう。
ただし今回の私のように、毎日やるわけでもなく、たまにマルチでできればいいかなくらいの人であったら契約するのは腰が引けます。
そのため、新規にサービスと契約する必要のない手段として、自前サーバを立てる手順を簡単にまとめました。
たまにできればいいや、とか試しにやってみたい、等という場合に参考にしてください。
(Windows10での作業を前提としています。)

## 2.必要なものの準備
– Java
– 開放くん(ポー

元記事を表示

備忘録:springbootにおけるMySQL接続について

springでMySQL接続に苦労したので忘れないように

“`
spring.datasource.url=jdbc:mysql://localhost:3306/App?serverTimezone=Asia/Tokyo
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create
“`
タイムゾーンを設定しないとエラー
その際、略三文字で指定すると怒られる➡エラー

driver classはmysqlのあとにcjを入れないと赤文字で警告?のようなものが出る。
意味は知らない
これから調べます。

元記事を表示

EclipseとSpringBootでHelloWorldと表示させてみた

#SpringBootを使ってみる

* 新規プロジェクト→Spring スタータープロジェクト
* 型をMaven,パッケージングをJar,Javaのバージョンを8,言語をJava,好きな名前を入力して[次へ]
* Springバージョン2.5.1であることを確認して,依存関係としてspring webとThymeleafを選択して[次へ]
* なんかよくわからないURLが出るがほっといて[完了]
* 作成されたSpringスタータープロジェクトにあるsrc/main/java→com.example.demo→プロジェクト名Applicationのファイルを以下の通り変更する

“`
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.Get

元記事を表示

java 変数の型を取得

変数名.getClass().getSimpleName()

元記事を表示

Jasper帳票PDF出力備忘メモ ~ 複数のリストによる帳票出力 ~

https://qiita.com/yuuman/items/c2129e93202a49bd0287

上記記事の続き

前回の帳票PDF出力では、`JRBeanCollectionDataSource`を利用してListに格納された値をJasperテンプレートに埋め込んで帳票出力を行っていたが、今回は複数のListをテンプレートに埋め込む方法について検証したのでその時の内容を備忘メモとして残す。

基本的には[こちら](https://zetcode.com/jasperreports/multipledatasources/)に記載されている内容の通りである。

また、コードの実装例などは大幅に省略しているので細かいことは前回の記事を参照すること

# Jasper側の実装

## 1. データセット/パラメータの作成

`Outline`で右クリックを選択し、`Create Dataset`を選択すると下記画面が表示されるので必要事項を入力しデータセットを作成する。

![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

一方通行(グラフ上の移動) Java編

https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_graph_step5

 題意が上手くくみ取れずいったん放置。しかる後お手本を参考に。
 お手本では「幅優先探索の一種」ということでC++のQueueを使っていたが、どう見ても可変長な二重配列。

 Javaで再現するには……と悶々考えた結果、
「前の問題を活かそうぜ。そういう仕組みだろ」
 となり、隣接リストを利用する形になった。

「あ、グラフ理論ってそういうこと……」と漠然とした実用法が見えた気がする。するだけ。

###コード

“`java
import java.util.Scanner;
import java.util.ArrayList;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);

int n = s

元記事を表示

Springbootで「HelloWorld」

# Springbootで「HelloWorld」を表示する

## 開発環境
* Windows 10 Home 64bit
* Eclipse Version: 2021-03 (4.19.0)
* Java 11

## Springbootでプロジェクトを追加する
**ファイル → 新規 → Springスターター・プロジェクト**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1614172/dba1e794-f2be-ae04-6588-83f388f0354c.png)
プロジェクト名を決める
デフォルトロケーションを使用
* 型:Gradle
* Javaバージョン:11
* パッケージリング:Jar
* 言語:Java

で次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1614172/aeb7dd32-a898-2cef-0070-29cdfefe3fac.png

元記事を表示

VSCodeでserialVersionUIDを自動生成したい!【2021/04~】

# こんな人のための記事

Language Support for Java(TM) by Red Hat では `0.77.0 (April 15th, 2021)` 以降、
`Serializable`の実装クラスで `serialVersionUID`が未定義のクラスに対して
Warningが出ないようになりました。

え!? Warningが出なかったら、Quick fix から
`Add generated serial version ID` できないじゃん!!

# 見つけるのはWarningを消す記事ばかり

大体の「Warningを消したい」サイトには、アノテーションを追加するか

“` ..settings/org.eclipse.jdt.core.prefs
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
“`
を追記しろという話でした。

逆手に取りましょう。
デフォルトが`ignore`になったなら、出すために`obey`を追記しよう!

“` ..settings/o

元記事を表示

【Java】Map+繰り返し+条件分岐をした際にうまくいかなかった原因

#起こった問題
Listの中に入っているMapを繰り返し処理で取り出して条件分岐させたのですが、うまくいきませんでした。

##問題のコード

“`java
List> list = new ArrayList>();
Map map = new HashMap();
map.put(“name”, “hello”);
map.put(“name2”, “hello2”);
list.add(map);
for(Map map2 : list) {
if(map2.get(“name”) == “hello”) {
System.out.println(“hi”);
}
}

// =>表示されない
“`

##原因
Javaの文字列比較で==演算子は使うことがNGだったようです。
簡単に紹介すると
比較している内容が
メモリ上のアドレスを比較するのか(==演算子)
メモリ上のアドレスに置いてあるデータ

元記事を表示

双方向性マップ

この記事では、Androidで双方向性マップを使う方法について記載しています。(Javaでも使えます)

### 双方向性マップ
双方向性マップは、「keyを指定してvalueを取得する」だけでなく、「valueを指定してkeyを取得する」ことが出来ます。

### 使い方
双方向性マップのライブラリはいくつかあるようですが、ここではcom.google.guavaのBiMapを使います。
ライブラリは、MavenまたはGradleで依存関係を指定することで使用できます。

“`
dependencies {
implementation(“com.google.guava:guava:30.1.1-android”)
// Javaの場合は 30.1.1-jre
}
“`

「valueを指定してkeyを取得する」場合は、inverseメソッドをコールすることで、keyとvalueが反転したMapが取得できます。

“`kotlin
val userId: BiMap = HashBiMap.create()
userId.pu

元記事を表示

[Web/まとめ] JUnit5 で Mockitoを利用する方法

### 背景
現在、担当中のjava moduleで Spring 2.3系から Spring2.5へmigrationを行なっている。
その際に、test周り、特にmockitoの移行で若干ハマったのでメモ。

特に、以下の英語LINKがよくまとまっていたので、この内容を元に要約してみる。
https://mincong.io/2020/04/19/mockito-junit5/

**なお、自分のMockito + Spring boot test frameworkの知識補充のために記載しているので、WEB Pageの丸翻訳というわけではなく、自分なりの理解や補足を加筆している。 なので、LINKの中で初めて知ること、わからないメソッドなどは適宜調べて自分なりのオリジナルまとめとなっている。**

### Junit5で Mockitoを利用する方法
以下の3つの方法があり、各方法での実装例や方法だけではなく、メリデメについてもリストしていく。

– `MockitoExtension`
– `MockitoAnnotat

元記事を表示

開発プロセスとSpringBootについて

#Java第3回
自分用のメモです。

##Webアプリケーションとは
* ブラウザ上で利用できるアプリケーション
* HTML/CSSやTCP/IPの基礎やブラウザの挙動なども理解する必要もある
* これら全てできるエンジニアのことをフルスタックエンジニアと呼ぶ

##Webアプリケーションでよく使う用語
クライアントとサーバー
* クラサバ構成はクライアントがブラウザからアプリケーションを起動し,サーバーが要求を受け付け,プログラムを起動し, その結果をクライアントに返す
* C#,VB.netがよく使われる

##リクエストとレスポンス
* クライアントからサーバへHTTPリクエストを送る
* サーバはそのリクエストに対して処理をした結果をレスポンスとしてクライアントへ送る
* API(WebAPI)があり,部品として使用することができる.これもリクエストを送るという意味で使うが「叩く」ともいう.
* アプリケーションサーバからブラウザに返すというのがレスポンスの仕組み

##通信
* Uniform Resource Identifier, Uniform Resource

元記事を表示

java用語集

①クラス プログラム実行に必要な処理をまとめた設計図

②メソッド いくつかの処理をひとまとめにしたもの
 インスタンスメソッド インスタンスに紐づけられたメソッド インスタンス固有の振る舞いを表す
 クラスメソッド クラスに紐づけられたメソッド クラス全体の固有の振る舞いを表す
 ※車クラスがあった場合に、インスタンスメソッドは1台の車インスタンスごとの振る舞いを表すのに対し、クラスメソッドは車全体の振る舞い。

③引数 メソッドに渡す値 入力値

④戻り値 返ってくる値 出力値
※和を計算するメソッドを作成した場合、数値が引数、和が戻り値

⑤変数 データを一時的に格納する箱
 
⑥データ型 取り扱うことができるデータのタイプ

⑦整数型 (byte型、short型、int型、long型)

⑧浮動小数点数型(double型、float型)

⑨文字型(char型)

⑩論理型(boolean型)

⑪インターフェース クラスに含まれるメソッドの具体的な処理内容を記述せず、変数とメソッドの型のみを定義したもの

⑫インスタンス クラスから作られるオブジェクト(実体)

⑬文字

元記事を表示

ラムダ式を使った配列の実験(Java編)

ラムダ式を使った配列の実験(Java編)です。

“`Java
package nogizaka
// ラムダ式の実験プログラム
// 2021/6/20 新規作成
// Author 乃木坂好きのITエンジニア

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

//ラムダ式実験プログラム
public class hairetsu_test {
public static void main(String[] args) {
//配列
List data = new ArrayList(Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12));
//ラムダ式で3で割り切れない数字を要素から削除する
data.removeIf( (Integer i) -> { return i % 3 !=0; } );
System.out.println(data);
}
}
“`

元記事を表示

SpringBoot のアノテーションについてのメモ

最近勉強を始めたフレームワークなので、お勉強がてら色々書いてみました。
そのうち何かこいつを使って試作してみたいですね。

# DI について

## @Autowired

一部の変数宣言に@Autowired を付与すると、DI の対象クラス(コンポーネントクラス)を探し、その変数にコンポーネントクラスのインスタンスを割り当ててくれます。

以下のクラスが対象です。

– @Component
– @Controller
– @Service
– @Repository
– @Configuration
– @RestController
– @ControllerAdvice
– @ManagedBean
– @Named
– @Mapper
– @Bean

DI の対象ではないクラス(上記アノテーションが割り当てられていないクラス)のメンバに対して@Autowired を指定すると実行時エラーが出ます。

## @Scope

このアノテーションに引数を指定してクラスに付与すると、そのクラスのライフサイクルを指定することができます。
指定できる引数は以下の通りです。

|

元記事を表示

OTHERカテゴリの最新記事