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

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

役立つlombok入門(java)

駆け出しITエンジニアあ~さんです。
lombokの機能に関して疑問持つ方が多いという認識から、サンプルを以下に掲載いたします。

論より証拠!!
<題材のソースコード掲載>
“`java:AccountBean.java
package com.lombok.sample.model;

import lombok.AllArgsConstructor;
import lombok.Data;

/** アカウントモデル */
@Data
@AllArgsConstructor
public class AccountBean {

/** ID */
private String id;

/** 名前 */
private String name;
}
“`

@Data → getter&setterを自動生成
@AllArgsConstructor → インスタンスに関するコンストラクター生成
※詳しくはググってね☆

<以上のソースコードがコンパイル時に自動生成される内容>
“`java:AccountBean.class
package com.lombok

元記事を表示

eclipseで作ったSpringBootアプリをAWSを使って公開する#1

# eclipseからGithubにpushする
かなり手間取ったのでメモしておく。
Githubでトークン取得、リポジトリ作成ののち、EclipseでプロジェクトをGitにより連携する。

## 1. Githubで個人アクセストークンによる認証準備
### 1.1 アクセストークン作成
「Setting」→「Developer settings」→「Personal access tokens」と進んで「Generate new token」をクリックします。(https://github.com/settings/tokens)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2781422/957e2141-fb25-e89d-9c3c-f7b6e47f8218.png)

ここで出てくるトークンをコピーして保存しておく。ページ遷移すると消えてしまうので注意。

### 1.2 リポジトリの作成
「Repositories」→「New」→名前を入力して「Create reposi

元記事を表示

Javaの学習 ~varによる型推論~

### varとは
変数宣言時のデータ型を推論する(ローカル変数の型推論)場合に、データ型の代わりにvarを使って変数を宣言します。
※型推論はコンパイル時に行われる。
※ローカル変数の宣言にしか使えない。

#### 推論できるパターン
例えば、下記の変数aには整数リテラルの10を代入しているので、データ型はint型になります。
“`java
var a = 10;
“`

また、以下のようにメソッドの戻り値を受け取るのにも使うことができる。(メソッドの定義から型が判別できる為)
“`java
var b = sample();
“`
###### ダイヤモンド演算子
ダイヤモンド演算子とは、下記コードに使用されている「<>」のこと。
“`java
ArrayList c = new ArrayList();
//右辺の<>の中身(String)を省略することができる。
ArrayList c = new ArrayList<>();
“`
型推論において、下記のようなコードを記述したとすると、
“`java
var d

元記事を表示

[Jython]SikuliXによるRPA開発 ~はじめの一歩~

[
![600×200.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2513692/17ca4477-a1cf-537b-871f-907fb01cb19e.png)](http://sikulix.com/)

GitHubで公開しているSikuliXのサンプルプログラムに関する解説です。

https://github.com/singularity-effect/TextHelper

これはRPAの基本とも言える、ユーザーの代わりに画面を識別し、マウスやキーボードを操作する機能を使っているデモプログラムです。この開発中にSikuliXの仕様について気付いた点を投稿していきたいと思います。

## Finderクラスの基本

SikuliXを使う最大のメリットはこの[`Finder`][Finder]ではないでしょうか? かなり手軽に画像のマッチング操作を利用できます。

[Finder]: https://sikulix-2014.readthedocs.io/en/latest/finder

元記事を表示

Javaの学習 ~識別子~

### 識別子とは
変数やメソッド、クラスなどの名前のことを識別子と呼びます。
識別子の命名規則は、以下の3つです。

①予約語を識別子として使うことはできない
②使える記号はアンダースコア「_」と通貨記号(主に「$」)のみ
③数字から始めてはいけない

##### 予約語
予約語(キーワードとも呼ばれる)とは、プログラムの文を表現するためにあらかじめ用途が決められている単語のことを言います。
例えば、データ型を表現する「int」や「char」、繰返し等の構文に使用する「for」や「if」は予約後にあたり、識別子として命名することができません。
ただし、予約語単体ではなく、「intA」のように別の文字と組み合わせたりすることで使用可能にはなりますが、推奨はされません。

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(DMI編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Javaの学習 ~リテラル~

### リテラルとは
ソースコード中に記述する値のことです。
Javaには整数、浮動小数点数、真偽、文字の4つのリテラルがあります。
それぞれのデフォルトは、
整数→int
浮動小数点数→double
真偽→boolean
文字→char
となっています。

### 整数リテラル
##### long型
デフォルトの`int`ではなく`long`として扱いたい場合は、整数の末尾に「L」か「l」を付けます。
“`java
long l = 12345L;
“`
##### 2進数・8進数・16進数
10進数以外にも、2進数・8進数・16進数で記述することができます。

2進数・・・「0b」が接頭辞。
“`java
int a = 0b1000001011;
“`
8進数・・・「0」が接頭辞。
“`java
int b = 0413;
“`
16進数・・・「0x」が接頭辞。
“`java
int c = 0x10B;
“`
##### アンダースコア「_」
桁数の多い数値リテラルを見やすくするため、アンダースコアを使った表記がJava 7から導入されました。

アンダースコ

元記事を表示

Optionalについてメモ

## Optionalについて
java8で追加されたクラス。
値をラップしてくれて、nullチェックやnull制御をしてくれる。
これにより、`NullPointerException`の心配もなくなる。
## 使用できるメソッド
以下サイトを参照するのがおすすめ↓

[今更まとめるJava Optional](https://zenn.dev/ayumukob/articles/552d0c7b544838)
[クラス java.util.Optionalのおさらいメモ](https://qiita.com/rubytomato@github/items/92ac7944c830e54aa03d)
## まとめ
`Optional`は今後、使用する機会が増えるクラスではないかと思うので、より理解を深めていきたいです。

Optionalについて(基礎)の参考サイト
→[JavaのOptionaとは?使い方をパターン別にわかりやすく解説](https://www.sejuku.net/blog/60892)

元記事を表示

【SpringBoot】開発環境作成(Jenkins自動デプロイ)

SpringBootの開発環境作成4回目です。
今回はJenkins自動デプロイします。
Jenkinsデプロイ完了後記事書いてるので、もしかすると抜けている部分があるかもしれませんがご了承ください。

## 作成内容
[①Springプロジェクト作成](https://qiita.com/nmaolks/items/ac3860d78822d52bb81c)
[②BitBucketプッシュ](https://qiita.com/nmaolks/items/43dc670b6184d643c0b1)
③VPSにデプロイ
**④Jenkins自動デプロイ**

## 処理の流れ
①Jenkinsインストール
②Jenkins初期設定
③Jenkins SSH設定
④BitBucket設定
⑤Jenkinsジョブ作成

## Jenkinsインストール
前提としてJavaをインストール必要があります。
Javaのバージョン確認します。
`java -version`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【Java】初心者による初心者のためのstaticのしくみ解説

# はじめに
こんにちは。
staticがよく分からない人です。なのでstaticの勉強をしました。
「staticってなにがどうなってるの!」と感じている方に向けて、そのしくみについて解説していこうと思います。
# 動作環境
OS:Windows10 バージョン20H2
言語:Java 8
使用エディタ:Spring Tool Suite 4

# 1. staticとは?
“`Main.java
public static void main(String[] args){}
“`
staticとは変数やメソッドにつける修飾子のことです。
Java使用者なら必ず見るであろう、処理を始めるためのエントリーポイントについている、**あれ**です。

staticを修飾した変数とメソッドは「**クラスのインスタンスを生成しなくても呼び出すことが出来る**」という特徴があります。

ホントかどうかは試してみないとわからないので試してみましょう。

“`Main.java
class Test {
static int staticNum = 0;
int num = 0;
}

元記事を表示

ByteBufferの単体試験で末尾の0Byte部分を無視する

## これは何?
* `java.nio.ByteBuffer`を用いてString生成する処理にて、部品化したクラスの単体テストで困ったことの解決

## 困りごと

“`NG.kt
@Test
fun hoge() {
val byteBuffer = ByteBuffer.allocate(5) //Byte範囲割り当て
byteBuffer.put(“あ”.toByteArray()) //ByteArray追加
byteBuffer.flip()
assertEquals(“あ”,String(byteBuffer.array())) //これでいけると思ったのだが…
}
“`

↓を参考に、ByteBuffer->ByteArray->Stringの順で変換すればassertできるのでは?と思って書いたところ、テスト失敗しました。

Java で ByteBuffer を String に変換する

![スクリーンショット 2022-08-11 0.18.32.png](ht

元記事を表示

Javaの学習 ~データ型~

Javaのデータ型には、プリミティブ型と参照型の2つがあります。
データ型・・・データの種類を表すもの。コンピュータにデータの扱い方を指定するために記述する。

### プリミティブ型
数値、真偽値、文字を扱うデータ型です。基本型とも呼ばれます。
| 整数型 | |
| —- | —- |
| byte | 8ビット整数(-128~127) |
| short | 16ビット整数(-32768~32767) |
| int | 32ビット整数(-2147483648~2147483647) |
| long | 64ビット整数(-9223372036854775808~9223372036854775807)

| 論理型 | |
| —- | —- |
| boolean | 真偽値(true/false) |

↑※C言語と違い、「bool」ではなく「boolean」であることに注意!

| 浮動小数点数型 | |
| —- | —- |
| float | 32ビット単精度浮動小数点

元記事を表示

多重ループからの脱出(continueとbreakの違い)

# はじめに
ネストされたfor文の中でcontinueとbreakの挙動の違いを整理しました。
JavaScriptで記載していますが、Javaでも同様に記載できます。

# 目次
[1. サンプル](#1-サンプル)
[2. continue](#2-continue)
[3. break](#3-break)
[4. さらに深いループ](#4-さらに深いループ)
[5. ラベルを使用したcontinue](#5-ラベルを使用したcontinue)
[6. ラベルを使用したbreak](#6-ラベルを使用したbreak)
[7. まとめ](#7-まとめ)

# 1. サンプル
次のような簡単な配列の多重ループを例にします。
“`js
const loopA = [1, 2];
const loopB = [1, 2, 3];

for (const a of loopA) {
for (const b of loopB) {
console.log(`A${a}-B${b}`);
}
}

// 出力結果↓↓
// A1-B1
// A1-B2
/

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(Pivot編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Spring Boot REST Controller でNot Found 404エラーの対処

## 概要
何となくRest Controllerを実装したところ、思わぬところでエラーが発生した。アノテーションでパスの指定方法を誤っていたため、下記に記載するコードの通り修正を行った。

## エラー内容

**Whitelabel Error Page**
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Aug 09 23:41:23 JST 2022
There was an unexpected error (type=Not Found, status=404).
No message available

## エラー発生時
“`java
package com.example.demo.app.api;
import com.example.demo.repository.ZooDao;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.f

元記事を表示

オセロをJavaで簡易的に記述した

## はじめに
超簡易的なので、プレイヤーは先攻のみです。
また、作ったNPCはweb上で無料でできるオセロの初級に負けます。クソ雑魚です。
何か間違っているんでしょうけどちょっと私にはわからなかったので、是非改良してください。

## ざっくりとした説明
まずは、作ったクラスについて説明していきます。

#### Othelloクラス
オセロの盤面の生成やひっくり返すメソッド、指定された場所に置けるか判定するメソッドなどをこのクラスに記述しました。
なお、Othelloクラスのmainメソッドに入力の受け取りなどを記述してあるので`java Othello`で実行ができます。

#### AIクラス
NPC用のクラスです。Othelloクラスから今の状況を表すオブジェクト(Othelloクラス)を渡して、それを元に置く場所を決めてOthelloクラスのメソッドを呼び出します。
今はランダムに選ぶNPC1、今置ける場所で一番ひっくり返せる手を選ぶNPC2、盤面に優先順位を付けてそれを元に選ぶNPC3、相手がNPC3だったときに一番最善手を選ぶNPC4を実装してあります。弱いのは多分盤面

元記事を表示

ReactNativeでスクリーンショットを禁止する

詳細については後ほど記載していく。
先に結論のみ。

## iOS
1)スクリーンショット禁止処理を実装(UIViewやUIWindowのExtention)
2)AppDelegate.mや任意の処理で呼び出し
[参考](https://stackoverflow.com/questions/18680028/prevent-screen-capture-in-an-ios-app)
“`swift
extension UIWindow {
func makeSecure() {
let field = UITextField()
field.isSecureTextEntry = true
self.addSubview(field)
field.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
field.centerXAnchor.constraint(equalTo: self.centerXAnc

元記事を表示

Javaの学習 ~javaコマンド~

### javaコマンドとは
javaプログラムを実行するためのコマンド。
javaコマンドで実行できるものは、

①mainメソッドを持つクラスファイル
②jarファイル内のメインクラス
③モジュールに含まれるメインクラス

の3つです。

※jarファイルとは・・・javaファイルを圧縮した、拡張子が「.jar」のファイルのこと。
※モジュールとは・・・クラスを束ねるパッケージをさらに束ねるもの。

### javaコマンドの構文
クラス名の後に続く引数は、「起動パラメータ」や「コマンドライン引数」と呼ばれます。
“`
//引数は必要な時のみ指定する
$java 完全修飾クラス名 引数
“`
(例)
“`
//下記のPracticeクラスを実行
$java Practice

//結果
練習
“`

“`java
public class Practice {
public static void main(String[] args) {
System.out.println(“練習”);
}
}
“`
### ソースファイルモード
J

元記事を表示

ABC263A~Dの解答[Java]

## はじめに
A~Cはコンテスト中に、Dは解説を見て解きました。Dまで解きたかったな・・・。

では、見ていきましょう。

## A – Full House
問題文は[こちら](https://atcoder.jp/contests/abc263/tasks/abc263_a)

A~Eをそれぞれ見ていっても良いですが、ソートして参照した方がなんとなく楽かなと思いました。
A~Eを配列に入れてソートし、card[0]==card[1]かつcard[3]==card[4]を満たしていて、かつcard[2]がcard[1]かcard[3]と等しければフルハウスになります(全部同じケースは無いと制約にあるのでこれで良い)。

“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args)throws IOException{

//A~Eを格納&ソート
i

元記事を表示

拡張for文ってわかりにくいよね

拡張for文って見た感じ意味が分らない(for文の方がわかりやすい)、謎いからよく分からないまま放置していました。重い腰を上げ、学習したらなんとなく理解できたっぽいです。備忘録として残します。

## 拡張for文とは
配列を取り出すためだけに生まれた、そんな存在。
配列の個体たちを1つずつ取り出したら、自動的に繰り返し処理を終了する。

## 構文
~~~Java
for( データ型 一時変数 : 集合 ){
繰り返し処理
}
~~~

一時変数=繰り返している間だけ使用する変数
集合=値を取り出したい配列

## コード例
~~~Java:拡張for文
public class kakuchoFor {
public static void main(String[] args) {
int[] arry ={10,20,30};
for (int i : arry) {
System.out.println(i);
}
}
~~~
~~~:実行結果
10
20

元記事を表示

OTHERカテゴリの最新記事