JAVA関連のことを調べてみた2022年03月27日

JAVA関連のことを調べてみた2022年03月27日

Kotlinでrest-assuredを使う

REST APIのテストコードを効率良く記述するためのライブラリである[rest-assured](https://rest-assured.io/)をKotlinから利用してみた。

### ライブラリを依存関係に設定する

[Kotlin用のExtensionライブラリ](https://kotlinlang.org/docs/extensions.html#extension-functions)が提供されているため、これを依存関係に設定するだけでrest-assured本体は推移的に解決される。

build.gradle.kts

“`kotlin
dependencies {
testImplementation(“io.rest-assured:kotlin-extensions:4.5.1”)
}
“`

### テストコードを実装する

先述のExtensionライブラリは、trainling lambdaやinfix notation、scope functionを活用してすっきりとした記述を可能にしている。条件・アサーション等をブロックで区切ることがで

元記事を表示

Singletonパターン

# Singleton – インスタンスはひとつだけ
参考書(結城浩([@hyuki](https://twitter.com/hyuki “@hyuki”))氏の[増補改訂版Java言語で学ぶデザインパターン入門](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E7%B5%90%E5%9F%8E-%E6%B5%A9/dp/4797327030/ref=sr_1_1?ie=UTF8&qid=1448935369&sr=8-1&keywords=java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3

元記事を表示

【 Java_インクリメント演算子とデクリメント演算子 】

現在独学でJavaを学習中です。
この投稿はその備忘録になります。

## インクリメント演算子とデクリメント演算子
■インクリメント演算子( ++ )
 対象の値をひとつ増やす
■デクリメント演算子( — )
 対象の値をひとつ減らす

##### それぞれの使用例
“`java
■インクリメント演算子■
int num = 5;
num++;

System.out.println(num); //6

■デクリメント演算子■
int num = 5;
num–;

System.out.println(num); //4
“`

### 前置と後置の違い
“`java
■前置き■
++num
–num
■後置き■
num++
num–
“`
##### 結果が同じになる使用例
“`java
■後置き■
int x = 5;

x++;
System.out.pritnln(x); //6
“`
“`java
■前置き■
int x = 5;

++x;
System.out.println(x); //6
“`
##### 結果が異なる

元記事を表示

Trixで画像アップロードを利用する

# はじめに

WYSIWYG エディタの Trix を使ってみました。画像アップロード機能も利用できるようにしたので、その手順を載せます。
Spring Boot で試しましたが、他の環境でも同様にできると思います。

[Trix: A rich text editor for everyday writing](https://trix-editor.org/)
[GitHub](https://github.com/basecamp/trix)

# 環境

* Java
* Spring Boot
* Thymeleaf
* H2 Database
* lombok

# 対象者

* 基本的な Java のコーディングができる方
* Spring で Web アプリ開発をしたことがある方

# 前提

コード量が多くなるので、記事では Trix により近い部分にフォーカスして扱います。割愛したソースは下記 GitHub で確認していただければと思います。
アプリのひな形は [Spring initializr](https://start.spring.io/) で作りました

元記事を表示

Scalaの勉強はじめました 3 〜オブジェクトとクラス①〜

## はじめに
N予備校の「Scala基礎」コースを受講しています。
今回は、オブジェクトとクラスについてです。

## クラス

:::note
複数のオブジェクトを作るための雛形のようなもの
:::

“`scala
class Cat(name: String) {
def greet(): Unit = println(s”吾輩は${name}である”)
}
val cat = new Cat(“ねこ”)
cat.greet()
“`
`name`がフィールド、`greet`がメソッド。

:::note
クラスの中でしか使わないメソッドやクラスの中だけでしかアクセスさせたくないフィールドには、`private`というアクセス修飾子をつける。
:::

### 抽象クラス
継承を使うことを前提に作られたクラスのこと。
インスタンス化はできない。`abstract`をつける。

“`scala
abstract class Creature(var name: String) {
def isAlive(): Boolean = true
}

class Huma

元記事を表示

Git HookでSpotlessとktlintを使った自動コードチェック

チームで開発する時に一律でフォーマット揃ってたり、
既存のコードも一律に綺麗にしたりを今後維持できるようにできたらいいなと思ったので
とりあえずやってみました。

## Git Hookとは

Gitでコマンドを実行する際に、前後でスクリプトを実行できるGitの機能。

今回使う`pre-commit`の場合、commitを行うとその前にスクリプトが実行され、
問題があればcommitを中止し、なければcommitを通すといったことが出来ます。

例としては
* commit時にテストを流す
* commit時にlinterでチェック、あるいはフォーマッターをかける
* 特定のブランチへのcommitを禁止(masterやdevelopなど)
* …etc

## Spotlessとは

https://github.com/diffplug/spotless

Javaのコードチェック、フォーマットが出来るLinterです。
指定したフォーマットに従ってJavaのコードをいい感じにフォーマットしてくれます。

## Ktlintとは

https://github.com/

元記事を表示

コンピュータとオセロ対戦49 ~AI実装と性能評価~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/d8f662c430ac277a4d20)

# 今回の目標
前回作成したネットワークを使用して対戦AIを作る。
また、[34 ~性能評価~](https://qiita.com/tt_and_tk/items/13be9077d3b136c20375)のように、その強さを客観的に評価する。
# 使用バージョン
* Java 17.0.1
* MyNet 1.2.4
# ここから本編
## 対戦AIを作る
まずは前回作成したネットワークを使えるようにしていきます。
なお、ここではそのネットワークを「oseroAI.net」という名前に変更しています。
### クラス構成
四つの引数を受け取り、倍精度実数を返す関数を格納するFourFunctionクラスも使用しています。
OseroBaseとOseroクラスについては、前回から変更していません。

“`
OseroBase // オセロの基本機能

元記事を表示

オブジェクト指向をガンプラに例えてみた

# **初めに**

IT未経験者でjavaを学習していて演算子やら配列やら繰り返し文…。
最初の内はプログラムの動くを知る意味でも基礎を身に着ける意味でも
ちょっと考えて動かせる様なとこから始まると思いますが慣れてきたとこで
いきなり**オブジェクト指向**…何か概念的なやつが出てくると思います。

正直言って頭に入ってこない人も居ると思いますし自分もそうです。
なので自分なりに分かりやすくまとめてみました。
今回は
 1.そもそもオブジェクトとは?
 2.説明書(クラス)を読もう
 3.組み立てよう(インスタンス化)
この3つに絞りたいと思います。

## 1そもそもオブジェクトとは?
ざっくり言いますとモノ、言うなればガンプラですはい。
こいつを今から組み立てる訳ですね、では箱を開けていざ組み立て!

の前に先ずはやることがありますよね?
そうです説明書を見ますね、これが無いとガンプラは組めません。
なので次にやることは…

## 2説明書(クラス)を読もう
実際に説明書を見ると
 -脚部
 -胴体
 -腕部
 -バックパック
 -ビームライフル
 -シールド
 -頭部
の作

元記事を表示

java初心者の日記(3)

最近すごい寒いので外に出たくないですね。

今日はFizzBuzz問題を解いてみました。javaのオブジェクト指向をどうたらこうたらって言うよりもただのアルゴリズムって感じですね。

#### for文
“` java
for (int i = 1; i<100; i++){ if(i%15==0){ System.out.print("FizzBuzz "); }else if(i%5==0){ System.out.print("Buzz "); }else if(i%3==0){ System.out.print("Fizz "); }else{ System.out.print(i+" "); } } ``` #### while文 ```java int i = 1; while(i<=100){ if(i%15==0){

元記事を表示

【Kotlin】定数で定義する

Kotlinの定数定義をする場合
## 結論
CompanionObjectを利用し、constを付けて定義する
“`定義の方法.kt
class Hoge {
companion object {
const val NAME = “hoge”
}
}
“`

## companion objectとは
クラス内では、objectキーワードの前にcompanion修飾子を付与することでクラスに属する**Singletonが作成**できる。これをcompanion objectと呼ぶ。

companion objectは**1クラス内に1つだけ宣言可能**。また、オブジェクト名は省略可能。

元記事を表示

Javaの上位互換性を信じすぎてはいけないとか

# クイズとか
いつものとおりクイズからスタートです。
以下のプログラムを**実行**して、得られる**結果**を答えてください。
“`java
import java.util.stream.IntStream;
public class Peeker {

public static void main(String[] args) {
long i= IntStream
.rangeClosed(1,3)
.map(x->x*2)
.peek(System.out::print)
.count();
System.out.println(i);
}
}
“`
ちなみにあまり見たことないかも知れませんので書いておきますと、peekは要素を渡すだけ、好きにしてね!という動きをします。
たぶんデバッグ用途以外で使うことはないです。てかJava APIリファレンスにもそう書かれてますし。
>This method exists mainly to support debugging,

# 答えとか
答えは **「Javaのバージョンによる

元記事を表示

blastengineのJava SDKを使ってメール送信を行う

[blastengine(ブラストエンジン)](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。まずはテキストメールの即時送信についてです。

[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b

元記事を表示

Java: JUnit 例外が発生することを確認するテストの書き方の変遷

# はじめに

JUnitでは、バージョンによってテストの書き方が異なります。

この記事では、例外が発生することを確認するテストの書き方を比較します。

# JUnit 3

[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())が呼ばれるとテストに失敗するという仕様を利用します。

下記のサンプルコードの場合、getメソッド内でIndexOutOfBoundsExceptionが発生した場合は、catch句に入り、[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())は呼ばれません。このため、テストに成功するという仕組みになっています。

JUnit 4/5でもこの書き方は可能ですが、後述の書き方のほうが読みやすいでしょう。

“`java
public void testOutOfBounds() {
t

元記事を表示

java.awt.image.BufferedImage.getType()が0:TYPE_CUSTOMの場合、インスタンス化時にIllegalArgumentExceptionが発生

# はじめに

## 記事を書いたきかっけ

長年運用している古いシステムにて、外部システムから送信される画像ファイル(JPEG)をリサイズして保存するという処理をしているのですが、外部システムの更改に伴いエラーが発生するようになり、その原因を調査しました。

同じ現象で困っている人はいないかもしれないですが、もし手助けになれば幸いです。

## 対象読者

java.awt.image.BufferedImageをインスタンス化しようとして、IllegalArgumentExceptionに遭遇した人(いるのかそんな人?)

## 環境

Java 1.6

Javaのバージョンが1.6の時点でお察し。クローズドな環境の塩漬けシステムです。

# 事象

処理部分のコードは以下のようなイメージです。

“`java
String strFilePath = “ファイルパス”;
File file = new File(strFilePath);

BufferedImage image = ImageIO.read(file);
int orgWidth = image.getWi

元記事を表示

javacでリリースバージョンを指定する

# 概要
Javaの外部ライブライりのバージョンUPを行った際に、実行環境のJavaよりライブラリのリリースバージョンが上だったので、実行環境のJavaのバージョンUPをすることになったときのメモです。

# リリースバージョンの確認
リリースバージョンの確認は、対象のクラスファイルをjavapで逆アセンブリすることで確認出来ます。javapコマンドの詳細な説明は[こちら](https://docs.oracle.com/javase/jp/17/docs/specs/man/javap.html)をご覧ください。

まずはクラスファイルへコンパイルするためのJavaファイルを準備します。
“`java:HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World.”);
}
}
“`

javacコマンドでコンパイルします。javacコマンドの詳細な説明は[こちら](https://docs.oracle.

元記事を表示

【LINE BotをAPI連携させたいだけなのに #1】エラー祭りへようこそ

# LINE Botを思い通りに動かしたーい!!
LINE Botでプッシュメッセージとリプライメッセージ(おうむ返しと固定テキスト)返すところまではできた。(やっとのことで。息も絶え絶えで。)
そして息切れしながら向かった先は、
## 脳みそに新たなひらめきをくれるAPI連携Botが作りたい
仕事ではプランナーとして企画制作の1000本ノックを日々行い、大学院ではアート作品を作る私。__煮詰まった時に脳みそをリフレッシュさせたい!自分の思考の外から新たな風がほしい!!__
そんな時のお助けアイテムとして、**「デザインに関してのインスピレーションを与える名言」** というステキAPIからお言葉を頂戴しようと思った。

### まずは単純なオウム返しBot
“`php5
‘use strict’;

const express = require(‘express’);
const line = require(‘@line/bot-sdk’);

const PORT = process.env.PORT || 3000;

const config = {
channelSe

元記事を表示

Java民から見た時のKotlinのギャップまとめ

# 経緯
社内PJでKotlinを使ってコードを書くことになりました。
メンバーには自分含めJava民が多いです。Kotlinへの移行がちょっとでもスムーズになるように、Java民から見た「Kotlin特有の書き方だなぁ」ってところをまとめました。

## Kotlin慣れに良いサイト(たぶん)

[(公式)イディオム](https://kotlinlang.org/docs/java-to-kotlin-idioms-strings.html)
[(公式)コレクションタイプ](https://kotlinlang.org/docs/java-to-kotlin-collections-guide.html#operations-on-any-collection-type)
Javaでこう書いてたものがKotlinだとこう、みたいな感じ

[公式リファレンス](https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/basic-types.html)
コレも公式。
右上の「TRY ONLINE」からオンライン環境で

元記事を表示

Nablarchを使ってみよう

# はじめに
こんにんちわ、きりと申します。

お仕事でJavaのフレームワークであるNablarchを利用する機会があったので、
その特徴や開発の癖のようなものを整理して皆さんに共有できればと思い記事にしました。

[Nablarchの良いところと悪いところ](#Nablarchの良いところと悪いところ)でも触れますが、お世辞にもわかりやすいフレームワークではないため、
私のようにNablarchを使った保守・開発を携わる人の助けになればと思います。

整理する中で思いの外、ボリュームが出てきてしまったので、「Nablarchを使ってみよう」シリーズとして
一覧化しましたが、記事の大部分はNablarch開発に関係なく参考にできると思いますので、
気になる記事を閲覧頂ければと思います。

なお、記事の内容や構成は定期的に見直しを行う予定ですので、
情報の誤りや誤記がありましたら優しくコメント頂ければ幸いです。

# Nablarch(ナブラーク)とは
Nablarchとは、かなりざっくり言うなら、Spring FrameworkのようなJavaアプリケーション開発/実行基盤です。

元記事を表示

JDKリンク集(OpenJDK, Amazon Corretto)

# JDK
## OpenJDK
https://jdk.java.net/archive/

## Amazon Corretto
https://aws.amazon.com/jp/corretto/?filtered-posts.sort-by=item.additionalFields.createdDate&filtered-posts.sort-order=desc

元記事を表示

「Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty」の対処方法

# まえがき

環境構築時にこの問題にでくわし、4時間ほど時間とられたので記録として残しておく( ´_ゝ`)

# 参考

[java][play1]依存性解決でnot foundエラー

# 原因
・OpenJDK8では`trust store($JAVA_HOME/lib/security/cacerts)`が空。

# 対処方法
・OpenJDK11からとってくる。

元記事を表示

OTHERカテゴリの最新記事