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

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

Java enum型とは

PHPerがJavaを触る機会をいただけたので備忘録として

## enum型(列挙型)とは
複数の定数を一つのクラスとしてまとめておくことができる型。

enum型はクラスとして定義されるので、フィールドやメソッドも定義できる点が大きな特徴。
enumのインスタンス化は、enum内部で行う1回のみ。
これにより、enumの各インスタンスは、プログラムの中で1つであることが保証される。
なので、enumは定数として利用できる。

## 基本の書式

“`enumTest.java
public enum enum型名 {
定数1,
定数2,
定数3
}
“`

初期値に数字や文字列の値を定義する場合は、以下のようにフィールドやコンストラクタの定義を行う。

数値の値を定義する場合
“`enumSports.java
public enum Sports {
BaseBall(0),
Tennis(1),
HandBall(2),

private int id; //フィールドを定義

private Sports(int id) {

元記事を表示

Junit4 を自作してみた

## JUnit4 を作ってみた

Qiita に [Junit を作る記事](https://qiita.com/torutakefusa/items/1cc7cba5842a5128b9bc) はあったが、アノテーションを使っていなかったので、今回はアノテーションを使った JUnit を自作してみた。

参考にしたコードは、[junit4/src/main/java/org/](https://github.com/junit-team/junit4/tree/9ad61c6bf757be8d8968fd5977ab3ae15b0c5aba/src/main/java/org/junit) 以下です。成果物は、

https://github.com/YmBIgo/my_junit4

にあります。

簡単に使い方を説明すると、以下のようなファイルを作り、実行すると、

“`java:SampleTest1.java
import myjunit4.JUnitCore;
import myjunit4.Test;
import myjunit4.Before;
import m

元記事を表示

【java 三項演算子】

## 【三項演算子】

“`java:標準
[型][変数] = [条件] ? [TRUEの場合] : [FALSEの場合] ;
“`

➀基本的なString型を判定して出力結果をString型に出力するタイプ。
判定:String  出力:String
“`java:三項演算子
String str = “sanko”;
String yes_no = str == “sanko” ? “YES” : “NO”;
System.out.println(yes_no);
“`
出力結果:’YES

三項演算子を使わずに書くと
“`java:通常
String str = “sanko”;
if (s == “sanko”) {
yes_no = “YES”;
} else {
yes_no = “NO”;
}
System.out.println(yes_no);
“`

➁int型を判定して出力結果をString型に出力するタイプ。
判定:int  出力:String
“`java:三項演算子
int num =

元記事を表示

Leetcode 231. Power of Two

# 231. Power of Two

https://leetcode.com/problems/power-of-two/description/

“`java
class Solution {
public boolean isPowerOfTwo(int n) {
if(n == 0){
return false;
}
if(n == 1){
return true;
}

while(n != 1){
if(n % 2 == 0){
n /= 2;
}else{
return false;
}
}
return true;
}
}
“`

元記事を表示

JavaでExcelをWordに変換する方法

Microsoft Excelは大量のデータを保存するために、Microsoft Wordはリッチテキスト文書を作成するために広く使用されています。あなたがWord文書に書式付きテキスト、画像、および他の要素を挿入するために、Word文書にExcelワークブックの情報を追加する必要があることがありますオケージョン。この記事では、無料の [Free Spire.Office for Java](https://www.e-iceblue.cn/Introduce/Free-Spire-Office-JAVA.html) の助けを借りて、Javaアプリケーションで**ExcelワークブックをWord文書形式に変換する方法**を学びます。

– **[ExcelをPDFに変換し、そのPDFをWordに変換する](#excelをpdfに変換しそのpdfをwordに変換する)**
– **[ExcelをHTMLに変換し、そのHTMLをWordに変換する](#excelをhtmlに変換しそのhtmlをwordに変換する)**
– **[Excelのワークシート上のすべてのデータを抽出し、それらをW

元記事を表示

Leetcode 1894. Find the Student that Will Replace the Chalk

# 1894. Find the Student that Will Replace the Chalk

https://leetcode.com/problems/find-the-student-that-will-replace-the-chalk/description/

例を確認して考えている通り実装

“`java
class Solution {
public int chalkReplacer(int[] chalk, int k) {
int index = 0;
while (0 < k - chalk[index]) { k -= chalk[index]; if (index < chalk.length - 1) { index++; } else { index = 0; } } return index; } }

元記事を表示

JavaでWord文書の編集を制限する方法

Word文書を他の人と共有する際、Wordドキュメント上の情報を保護するために、Word文書の一部または全部の編集を制限したい場合があります。この記事では、無料の [Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html) を使用して、**Wordドキュメントに編集制限を設定する方法**を学びます。それは、ユーザーが保護の正確なタイプを選択できるように **ProtectionType** 列挙パラメータを提供しています。

– **[Word文書権限を閲覧のみに設定する](#word文書権限を閲覧のみに設定する)**
– **[Word文書権限をコメントのみに設定する](#word文書権限をコメントのみに設定する)**
– **[Word文書権限をフォームへの入力のみに設定する](#word文書権限をフォームへの入力のみに設定する)**
– **[Word文書権限を編集のみに設定する](#word文書権限を編集のみに設定する)**
– **[Word文書の権限設定

元記事を表示

Mac×OpenCV×Javaで環境構築をして顔認識してみた。

# はじめに
ネットを見ているとOpenCVの構築はC、PythonやAndroid/iOSのセットアップ記事が多いです。
というのも計算系のライブラリが豊富だったり、モバイルのニーズが高いというのが理由なのかな?と思ってます。

過去の大学時代にJavaを利用して深層学習や機械学習
をちょっとだけ勉強していて、
数年ぶりにまたOpenCVで遊んでみたいな〜と思ったのが理由になります。

今回はOpenCVの環境構築だけなので一旦顔認識まで出来るようにします。
備忘録がてらにメモしているので説明が悪いのはごめんなさい。

# 作業手順一覧
**1. JDKインストール**
**2. OpenCVインストール**
**3. InteliJインストール**
**4. OpenCV動作確認**
**5. 顔認識**

## JDKインストール方法
OracleのJDK19を利用します。
古いJDKを利用するとビルド時にOpenCVのコード部分でエラーが発生します。

https://zenn.dev/taktaky/articles/3e974dc7762953

インストールは下記コ

元記事を表示

Gradle 7.5.1でSpring Boot 2.7.5 のプロジェクトを作ってみた

# はじめに

Gradle でSpring Boot プロジェクトを作ってみたので手順を記載します。ライブラリは現在の最新バージョンを利用します。SpringBootのバージョン指定はGradleプラグインとBOMを使う方法の2パターンを試します。version catalog のtomlファイルでの設定もやってみました。

# 対象読者

* Gradle, Spring Boot で開発経験のある方

# 環境

* Gradle 7.5.1
* Java 18.0.2
* OS Windows11

# プロジェクト作成

`gradle init` でたたき台となるプロジェクトを作成します。

“`bash
$ gradle init –type java-application –test-framework junit-jupiter –dsl groovy –project-name SpringBootExample –package example

Generate build using new APIs and behavior (some fe

元記事を表示

【未経験】【中途】プログラマー1年目の実務内容と感想

 僕は2021年の9月から中途のエンジニア採用枠でIT企業に就職しました。ところが僕には社会人経験も実務経験も情報系の資格も学歴もありませんでした。そこで、情報系の学部卒の新卒1年目とは異なる目線から、プログラマー1年目の実務内容をお伝えしたいと思います。

|期間 |業務内容 |
|—-|—|
|1ヶ月目~ |研修(Python) |
|2ヶ月目~ |シナリオテストの実行(テスター) |
|6ヶ月目~ |バッチ・画面の設計書修正・機能改修・テスト(Java,C#,Angular) |
|8ヶ月目~ |画面・実行機能の詳細設計・新規開発・テスト(Python,Django) |
|10ヶ月目~ |バッチ・画面の設計書修正・機能改修・テスト・保守運用(Java,C#,Angular) |

 業務内容はざっくりとこんな感じです。1ヶ月ほど研修を受け、2ヶ月目から4ヶ月間ほどテスターとして現場で働きました。そして6ヶ月目から本格的に開発現場に配属され、主にJavaでのバッチ開発に携わっています。また間で2ヶ月ほどPython、Djangoでの新規開発プロジェク

元記事を表示

【デザインパターン】Builder

# Builderとは
Builderはデザインパターンのうち、生成のパターンに分類される一つであり、複雑なオブジェクトを段階的に生成します。今パターンでは異なる型や様々な表現を持つオブジェクトを一つのBuilderで生成できます。

# 問題点
フィールドが多数になると、コンストラクタのパラメータが増えてきます。また、必須でないフィールドが多くあると、冗長的なコンストラクタとなります。

“` java
public class House{
public int roof;
public int wall;
public int floor;
public int door;
public int window;
public int stair;

public House(int roof, int wall, int floor, int door, int window, int stair){
this.roof = roof;
this.wall = wall;
this.floor = floor;
this.door = doo

元記事を表示

Databricks ( Spark ) にて Windows 機種依存文字 を保持しているソースを読み込む場合にはエンコーディングを `ms932` とするのがよさそうという話

## 概要
Databricks ( Spark ) にて Windows 機種依存文字 を保持しているソースを読み込む場合には、エンコーディングを `shift_jis` ではなく、 `ms932` にするのがよさそうと教えていただいた内容を共有します。

機種依存文字 とは、CP932 という Shift_JIS を独自に拡張した文字コードなどで定義されている文字であり、Macなどの他の機種では適切に表示ができない文字のことです。 Windows の 機種依存文字としては次のような文字があるようです。

> ① ② ③ ④ ⑤ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ ㍉ ㌔ ㌢ ㍍ ㌘ ㌧

Windows 機種依存文字が含まれるファイルを参照する場合には、`shift_jis`で読みこむと文字化けしていしまうため、`ms932` で読むことで適切に読むことができそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c0dd2dbc-647a-1356-14b2-4eea49b61

元記事を表示

学校の課題「10倍整数型:IntegerX10」について真剣に実装してみた

# 課題内容

僕が通っている学校のある授業でこんな課題が出されました。

## 10倍整数型
Javaの`int`型の上限・下限を1桁増やし、-21474836489〜21474836479 の範囲の整数を扱う `IntegerX10` クラスを作成せよ。

なお、以下のひな型に沿って実装すること。(`…`の部分を自分で実装する)

“`java:IntegerX10.java
public class IntegerX10 {
// 1の位の値
public int value1;
// 10以上の位の値
public int value10;

public IntegerX10(…) {

}

public IntegerX10 add(IntegerX10 v) {

}

public String toString() {

}
}
“`

通常、`int`型は4バイトで表されるため、最大値`Integer.MAX_VALUE`は2147483647になりますが、それを1桁増や

元記事を表示

Java For Data Science

Events continuously happen all around the world. Often, we create a record of a unique event at a specific time and space. These recorded events collectively represent what we know as data. In contrast, data science uses scientific processes, systems, methods, and algorithms to abstract knowledge and insights from these structured and unstructured data.

Moreover, Data Science is an interdisciplinary approach that b

元記事を表示

【logic】銘柄コード取得APIのキャッシュ管理

# はじめに

過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。

銘柄コード取得API(symbolnameFutureGet,symbolnameOptionGet)は、取得したコードと名称は変わらないため、キャッシュを保存して、後から参照する。

# 設計

現時点では、PUSH API受信ツールのみが銘柄コード取得APIを使用している。
テストするのに、WebSocket環境を用意する必要があり、モックサーバーでは開発できないので、銘柄コード取得部分を切り出した単体のツールToolSymbolNameを作成する。

キャッシュ管理クラス(SymbolNameLogic)はMapでキャッシュ管理するが、AutoCloseableを実装し、コンストラクタでファイルから読み込み、close()でファイルに保存する。
ファイルロックでの排他制御は行わない。
なお、キャッシュが変化していない場合は、保存しない。

キャッシュのキーは、複合

元記事を表示

Open LibertyとMicroProfile Reactive MessagingでKafkaのイベントを読み取る

Javaのアプリケーションサーバである [Open Liberty](https://openliberty.io/) では、MicroProfile Reactive Messagingと呼ばれる仕様のAPIを使うことでイベント処理することが可能です。

この記事ではMicroProfile Reactive MessagingでApache Kafkaのイベントを読み取って処理するConsumerを実装してみます。イベントの送信については別の記事で紹介する予定です。

![スクリーンショット 2022-11-06 21.54.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137947/9c45c24e-f10a-88e9-365f-d921de83f121.png)

## 本記事で使用するコンポーネント

本記事では以下のコンポーネント・バージョンを使用します。
今後のバージョンアップで動作しない可能性がありますので、本番投入する際には事前に手元で動作確認することをお勧めします。

|コン

元記事を表示

Box SDKでBox APIを使ってみる

# 概要
Boxに対して別のシステムからファイルのアップロード、削除やコラボレータの追加、削除などの操作をしたい場合に、BoxのAPIを利用しやすい形で提供しているBox SDKの使い方について記載したいと思います。

# Box SDKの準備
Box SDKは公式に各種言語向けに提供されています。今回はJavaSDKを使用しましたので、記事中のコードもJavaで記載しています。基本的には各操作に関して考え方は同じになると思います。
[SDKとツール \- Box開発者向けドキュメントポータル](https://ja.developer.box.com/sdks-and-tools/)

## インストール
SDKはMavenやGradleから入手することができます。[Box Java SDK](http://opensource.box.com/box-java-sdk/)
以下はMavenの例。
“`XML

com.box
box-java-sdk

元記事を表示

Service と Dao(DB処理) と Entity ざっくりまとめ

Java のDB処理で `Service` , `Dao` (Data Accesss Object) を使ったときのはなし
`Service` と `DAO` と `Entity` の関係をざっくりまとめる
細かいことは気にしない!!いったんは流れが分かればOK!!!!
説明で使ってるサンプルプロジェクトのおおもとは GitHub [java-webapp-clump](https://github.com/sueasen/java-webapp-clump) にあります
ここでは DB接続 の方法として以下の2つでやってみる
– JDBC (Java Database Connectivity)
昔から使われてるDB接続方法(DB処理を実行するための 標準仕様)
– JPA (Java Persistence API) :
開発でよく使われるDB接続方法(DB処理を実行するための ORM (Object-Relational Mapping) の仕様)
# DB接続のORM の FW (フレームワーク) はいろいろある...ここではJPA標準の Eclip

元記事を表示

【eclipse】Springスタータープロジェクトの名前をリファクタリング(変更)した際に出現するエラーの解消方法

## 前置き
プロジェクト名を変更しようと、以下キャプチャから修正したところ
多数のファイルで見慣れないコンパイルエラーが出現。
ググっても中々解決策を見つけられず意外と手こずったので、もし同じような事象で
困っている方がいたら、解決手段の一つとして参考にしていただけたらと思います。
![20221106-223259.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2659821/dd9f8921-7cb1-e77a-06f2-e01fa5d7c527.png)

## 結論
自動生成されるsettings.gradleファイルの内容を修正する事で解決できる。
![20221106-233406.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2659821/d966f8eb-ef99-15a3-332b-dd78b59444f5.png)
以下キャプチャの”(シングルクォーテーション)内の値が古いプロジェクト名のままに

元記事を表示

【Java】コレクションの要素を削除するArrayListのremoveメソッドとIterator(イテレータ)のremoveメソッドの違い

**概要**
ArrayListの要素を削除するときの、下記2種類のremove()メソッドの挙動の違いを理解することを目的とし、Java API等の言語仕様説明を交えながらサンプルコードを動かします。
– ArrayListクラスのremove()メソッド
– ArrayListクラスのiterator()メソッドから取得したイテレータのremove()メソッド

実用性よりは知識を深めることに重点を置いた内容となっています。

**対象**
Java初級〜中級レベルの方に伝わる説明を心掛けています。

より具体的には…
– オブジェクト指向の入門レベルを一通り学び終えている人
– ArrayListの要素をループ内で思った通りに削除できなかった人
– 拡張for文でコレクションの要素を削除しようとしたら謎のエラーが出た人
– イテレータをあまり使ったことがない人
– 何となくでも「イテレータとは、ポインタとかカーソルとか矢印みたいに、コレクションの要素を指し示す何かそういうやつ」と分かっている人

## 1. コレクションの要素を削除するメソッドremove

ArrayList\

元記事を表示

OTHERカテゴリの最新記事