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

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

Java CSVからのデータを表示させる(spring boot)

#プロローグ

Java(spring boot)を触り始めてコードを書き始めて2週間程度ですが、
色々と使い方を覚えてきたので、メモとして記録を残します。

不備不足だったり、理解が浅くて説明不足なところがあるかと思いますが、
勉強して更新していきたいとは思っています。

このプログラミングを書く前の理解度としては、アノテーションも分からずでした。
spring bootも分からなかったので、Ruby on Railsと同じようにMVCでデータを取得、加工、表示するのかなと思っていました。

計算処理を行う「service」というものの存在も知りませんでした。

##この記事で何ができるようになるか

まだ自分自身もそれぞれのクラスの役割を理解してませんが、
データを受け取って表示させることができると思います。

まずは、わからないなりに手を動かして画面に表示させることで、なんとなくの流れをつかむことが大切なのかなと思います。

この記事でやることとしては、ファイル内に作成したCSVファイルを読み取って、画面上に表示させるというイメージです。

また、ただ読み取って表示させるだけでは

元記事を表示

【Sfdx/Apex】パッケージ開発時の「In field: apexClass – no ApexClass named HogeClass found」と向き合う

# 概要
SalesforceのAppExchangeアプリの開発時、スクラッチ組織へのソースプッシュ時に起こる`In field: apexClass – no ApexClass named HogeClass found`の対策方法

対象の読者の方は
– パッケージ開発をされている
– スクラッチ組織やxml形式のメタデータ、Gitの知識がある
– 上のエラーが出て困っている

以上です。よろしくお願いします。

## エラーの経緯

結論を述べる前に経緯を書きます。

あるスクラッチ組織で開発をしていたのですが、30日の期限の中で開発が間に合わなかったので、ソースをブランチで管理したまま、スクラッチ組織を作り直そうと思いました。

プロファイルやカスタムオブジェクトなど、さまざまなメタデータの変更点はあったのですが、`sfdx force:source:pull`を行い、基本的な変更点はバージョン管理してから作り直しました。

mainブランチのコードでスクラッチ組織を作り、ブランチを切り替えてから`sfdx force:source:push`をしたところ、掲題のエラーが出

元記事を表示

【自分用メモ】Flyway使い方

### この記事に書くこと

・Java経由でのFlyway実行方法
・Mavenプラグイン経由でのFlyway実行方法


#### Java経由

1.pom.xml

“`


  org.flywaydb
  flyway-core
  8.0.1



  org.postgresql
  postgresql
  42.2.23

“`

2.Mainクラス

“`
public static void main(String[] args) {
 # appliacation.propertiesに外

元記事を表示

Spring Boot 2.5以降でHTTP/2を試す

以前はHTTP/2試すのに色々と設定が必要だったが、https://hirakida29.hatenablog.com/entry/2019/11/30/231927 で書かれているようにSpring Boot 2.5以降はプロパティを一つ設定するだけになった。これを試す。

# ソースコード
“`gradle:build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.5.6’
id ‘io.spring.dependency-management’ version ‘1.0.11.RELEASE’
id ‘java’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’17’

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-we

元記事を表示

Javaで分数のクラスを書いてみた(既約分数への変換,非Integerの分母分子に対応)

# はじめに
 本記事では`Java`で自作してみたので分数のクラスを公開させていただきます.一応テストは行いましたが欠陥があったらすみません泣

 特徴としては,次の3点を目指しました.

– 分母,もしくは分子が小数点ありでも大丈夫(本記事では分母と分子の型は`BigDecimal`です.).
– 既約分数にできる.
– 分数同士の割り算で分母が`0`になった場合は例外が発生する.

 「この分数って割り算したら無限小数になっちゃうから,切り上げとかしないといけないよなあ.でも切り上げとかやって誤差大きくしたくないなあ.代わりに既約分数とかに変換できたら嬉しいなあ」といったニーズのある方の助力になれたら嬉しいです.
 もし読みにくいコードがあればすみません泣

# コード

こちらが分数のクラスのコードです.クラス名は`Fraction`としました.

“`Fraction.java
import java.math.BigDecimal;

public class Fraction {
private BigDecimal numerator; // 分子
private

元記事を表示

【Java】演算子について簡単にまとめ

# 式の構成要素
– **リテラル**は **オペランド** の一種であり、数字「5」や文字列「Hello World」など、具体的な値のことを指す。
– オペランドは「演算子で操作される値」のことであり、日本語では「被演算子」である。変数、定数、リテラルが含まれる。
– `b = a + 5` という式があったとして、式を構成する要素は二つに分けられる。変数の`b` や`a`、値の `5` にあたる **オペランド** 、`=`や`+`にあたる **演算子** である。すべての式はこの二つの要素で構成される。

# 演算子
– 式に演算式が複数ある場合、優先順位の高い演算子から順に評価される。`評価`とは、Javaが式に従って計算処理をすることである。
優先順位は15段階。`()`で式を囲むことによって、その部分だけ優先順位を引き上げることができる。
– 同じ優先順位の演算子が2つ以上ある場合は、「結合規則の原則」を当てはめて考える。これは、演算子ごとに決められた「方向」から順に評価されるものである。

– 四則演算を行うための演算子は、 **算術演算子** と呼ばれる。

|演算

元記事を表示

現場で使用したMapの使い方メモ

#目次
[1.Mapの初期化編](#1-mapの初期化編)
[2.Mapに要素を追加する編](#2-mapに要素を追加する編)
[3.Mapから要素を取り出す編](#3-mapから要素を取り出す編)
[4.Mapの中身を確認する編](#4-mapの中身を確認する編)
[5.さいごに](#5-さいごに)

#1. Mapの初期化編

## ① Map<キーの型, 値の型> Map名 = new HashMap<>() で初期化
※型はクラス型のデータ型(String、Integer、Longなど)を指定する必要があるので注意。

“`java
Map fishNameMap = new HashMap<>();
“`

キーと値が詰まっていくイメージはこちら。

| キー | 値 |
| :-: | :-: |
| 1 | かつお |
| 2 | さんま  |
| 3 | あじ |

##② Mapの値にはリストを設定することも可能

“`ja

元記事を表示

DIは美しいデザインパターン

こんにちは。お久しぶりです。

Springで開発中なのですが、なんとも難しい。。。
今日はDIについて書こうかなと思います。

# DI(依存性注入)の定義

> コンピュータプログラムのデザインパターンの一つで、オブジェクトなどの間に生じる依存関係をオブジェクトのコードに直接記述せず、外部からなんらかの形で与えるようにする手法。

これを理解するためには、「依存」という意味と「注入」という意味を理解する必要がある。

# 依存

依存とは一言で言うと「他のクラスを利用しているかどうか」のことである。

例えば下記のコードがあるとする。

“`Car.java
public class Car {

private HondaEngine hondaEngine;

public Car(HondaEngine hondaEngine) {
this.hondaEngine = hondaEngine;
}

public void go() {
hondaEngine.startEngine();
h

元記事を表示

Spigotプラグイン開発 ~環境構築・HelloWorld~

##最初に##

・この記事はMinecraftサーバーのプラグインを作りたいけど何の知識もない! という方向けです。
・もしかしたら間違っていることがあるかもしれませんがご了承ください。

##Intellij IDEAのダウンロード・設定##

JetBrains社のIntelliJ IDEAをダウンロードしていきます。

https://www.jetbrains.com/idea/download/

上のリンクからダウンロードしてください。
プラグインを開発するだけなら **Community** で十分だと思います。

![chrome_76cm29VFtz.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1840949/4af90f99-b96f-78d4-c091-ae5fb0c4fad3.png)

ダウンロードが完了したら開いてNextを押していってください。

![ideaIC-2021.2.3_IY1b3VFyKP.png](https://qiita-image-sto

元記事を表示

Java – How to Convert Comma-Separated String to List?

“`java
List items = Arrays.asList(someString.split(“\\s*,\\s*”));
“`

https://stackoverflow.com/questions/7488643/how-to-convert-comma-separated-string-to-list

元記事を表示

Java – How to Convert an ArrayList to a String?

“`java
import org.apache.commons.lang3.StringUtils;

String str = StringUtils.join(myList);
or
String str = StringUtils.join(myList, “, “) // 2nd param is the separator.

“`

https://stackoverflow.com/questions/599161/best-way-to-convert-an-arraylist-to-a-string

元記事を表示

Java: Spring BootでのWebアプリ開発のYouTube動画をみんなで視聴した

自主的な勉強会として、Spring BootでWebアプリケーションを開発するYouTube動画を、数人の新人開発者と視聴しました。本記事は、その実施内容と私の感想をまとめたものです。

# 勉強会を企画した背景

ふだん、[私はレガシーなWebアプリケーションの開発・保守をしています](https://note.com/flyaway/n/nc1ed9bc5ccfc)。一般に、そのようなアプリケーションを修正する際には、さまざまなところに気をつける必要があります。

たとえば、多くの処理を自前でコーディングする必要があります。また、何か問題にあたったときに、それをGoogle検索しても、解決のための情報はなかなか見つかりません。

そのようなアプリケーションを触ることに慣れてしまうと、それが普通の世界だと勘違いしてしまう可能性があると思いました。

そうではなく、世の中で広く使われているフレームワークを使っていれば、少なくわかりやすいコーディングで実装ができます。落とし穴にもはまりづらく、開発スピードを上げることができます。それは、結果として、プロダクトの競争力を高めることができると

元記事を表示

Arrays.toString()メソッドでハマった話

# はじめに
皆さん、[Arrays.toString()](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Arrays.html#toString-boolean:A-)メソッドご存知ですか?
今回このメソッドを使用しようとして1時間くらいハマってしまったので、記事にします。
※Arrays.toString()メソッドを使うべきでないところで使ってしまった話です

# 今回の経緯

以下のようなListからどうにかして `s1,s2,s3,s4,s5`という文字列を生成したくなりました。

“`test.java
List temp = new ArrayList();
temp.add(“s1”);
temp.add(“s2”);
temp.add(“s3”);
temp.add(“s4”);
temp.add(“s5”);
“`

絶対便利なメソッドあるよな~と思って見つけたのがArrays.toString()メソッド!
試しに出力してみます。

“`test.java
Li

元記事を表示

【SpringBoot2】自作アノテーションの作成と入力チェックについて

# はじめに
この記事はSTSを利用した自作アノテーションの作成方法を記したものです。
以下のバージョンでの動作を確認しています。
– Pleiades All in One Eclipse 2021
– Spring Tool Suite (STS) 4.12.0

今回は「正しいタイムスタンプ形式かどうか」をチェックする自作アノテーションを作成してみたいと思います。

# 注釈(アノテーション)型の作成
1. 「Ctrl + N」もしくは、「ファイル → 新規 → その他」からウィザードを立ち上げます
2. Javaの項目の注釈型を選択し、次へを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1017677/6d065f27-6a76-f7d7-bc4b-6950eced3ae1.png)

3. 名前を記載してください。バリデーション名になるため何を入力チェックするのかが分かりやすいモノであるべきでしょう。
3. `@Rentention`とはアノテーションが影響する範

元記事を表示

[Java]データ型(基本型)について(初心者)

# はじめに
本記事では、Javaの`データ型`について記述します。

# データ型とは
Javaのデータ型は、`基本型`と`参照型`に分けられます。
今回は、`基本型`についてになります。

“`
データ型
|
|-基本型(今回はここ!)
| |
| |-論理型
| |
| |-整数型
| |
| |-浮動小数点型
| |
| |-文字型
|
|-参照型
|
|-クラス型
|
|-インターフェイス型
|
|-配列型
“`

## 論理型
boolean…真偽型(true、またはfalse)
論理演算の結果として、trueかfalseで返すということになります。

また、trueかfalseなので、
サイズとしては、`1bit`になります。

“`Bool.java
class Bool {
public static void main(String[] args) {
int var_a = 1;
int var_b = 10;
boolean var_bool;

元記事を表示

Selenium Gridの環境を構築する(docker-compose利用)

## クライアントも WebDriver もブラウザ本体もローカルで稼働する場合

macOS を利用している場合は、ChromeDriver などのドライバーを格納したディレクトリで以下のコマンドを実行して、実行可能にしてから使用する。

“`bash
sudo xattr -d -r com.apple.quarantine chromedriver
“`

Safari は WebDriver は不要で、Safari の設定で「開発」から「リモートオートメーションを許可」とするだけでよい。

Chrome や Firefox(geckodriver) を利用する場合は、WebDriver へのパスを指定する必要がある。

“`java
System.setProperty(“webdriver.chrome.driver”, “/path/to/chromedriver”);
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
“`

## ク

元記事を表示

Spring Boot + WebSocketのチャットアプリのチュートリアルをやってみたので解説してみる

## はじめに
普段はフロントエンドな私ですが、ちょっとバックエンドも触りたくなり、JavaのWebアプリケーション向けフレームワークであるSpring Bootに入門しました。
勉強進める中で、ちょうど良さそうなチュートリアル動画があったので成果物のアプリの解説をしてみたいと思います。

チュートリアルの動画:[Spring Boot WebSocket: Chat Example
](https://www.youtube.com/watch?v=-ao3pX-UhQc&t=3374s&ab_channel=JavaMaster)
コード:[github:spring-websocket-chat
](https://github.com/caligula95/spring-websocket-chat)

## 依存関係
spring-boot-starter-websocketが必要です。

“`xml

org.springframework.boot
spring-boot-st

元記事を表示

JUnit5で環境変数が指定されていない場合にテストを実行しないようにする

“EnabledIfEnvironmentVariable“アノテーションをクラスまたはメソッドに付与する。複数の環境変数が必要な場合は“EnabledIfEnvironmentVariables“を使用する。

“`java
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariables;

@EnabledIfEnvironmentVariables({
@EnabledIfEnvironmentVariable(named = “HOGE”, matches = “.*”),
@EnabledIfEnvironmentVariable(named = “FUGA”, matches = “.*”)
})
public class SampleTests {
“`

Visual Studio Codeの場合は“settings.json“に

元記事を表示

[Kotlin] when式の表現力

Javaから派生した言語であるKotlinには、Javaのswitch 〜 case文の後継としてwhen式 (when expression) が用意されています。switch 〜 caseから重要な点が変更されていて単純比較はできないものの、表現力が増して読みやすく書ける場面が増えたといってよいと思います。Rubyのcase 〜 when式などよりも使える表現が多くなっています。

Kotlinではwhenは文でなく式として使えます。つまり値を返させることができます。もちろん、あえて式として使わず文として自由に使うこともできます。

本記事の対象は Kotlin v1.5 以上のバージョンです。本記事のコードは Kotlin v1.5.31 で検証しています。

## 引数ありwhen式

以下の引数ありwhen式の記述例は、`->` の左辺に `value` に対する条件を、右辺に条件に合致した場合の値(式、もしくは処理)を書いています。

“`kotlin
fun printKindOf(value: Number) {
println(
when (

元記事を表示

HerokuにSpring Bootアプリをデプロイするときにハマったことのまとめ

Herokuに初めてSpring Bootアプリをデプロイしたときにハマったことと、どうしたら解決したかをまとめておきます。一般論については[公式サイト](https://devcenter.heroku.com/ja/articles/deploying-spring-boot-apps-to-heroku)や多くの優れた記事が既にあるので、この記事では私がハマったときの状況や表示されたエラーメッセージ等と、それをどう解決したかを一般化せずそのまま書いていきます。同じ状況にある人の参考になれば幸いです。
#筆者の環境
openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
javac 11.0.2
Apache Maven 3.8.2
#Exception in thread “main” java.lang.UnsupportedClassVersio

元記事を表示

OTHERカテゴリの最新記事