JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

Spring スタータ・プロジェクト (Spring Initializer) メモ(eclipse2023)

Eclipse2023 使って Spring スタータ・プロジェクト (Spring Initializer) よりプロジェクト作るときの簡易メモ
依存関係はデフォルトから Thmeleaf だけ追加してます

# 環境
– windows11
– Eclipse2023 (pleiades)
– Spring Boot 3.2.3 (Maven)
– Java21

# やったこと(手順的なやつ)

## プロジェクト作成

1. Eclipse で Spring スタータ・プロジェクト(Spring Initializer) の新規作成
[ファイル] – [新規] – [Spring スタータ・プロジェクト(Spring Initializer)] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/7903f95e-b617-9351-8079-ffe8505b3e6a.png)

1. 設定のダイアログ① は以下の設定を行い [次へ] をクリ

元記事を表示

[Gmail API] Javaでメールのラベルを変更する

Gmail API v1(Java)を使用して、
Gmailのメールのラベルを変更する方法
についてご紹介します。

**ラベルとは**
メールにつける印みたいなものです。
ラベルを作ることでラベル毎に整理、管理することができます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[ラベルを変更](#1-ラベルを変更)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[ラベルを一括変更](#2-ラベルを一括変更)|
||1|[スコー

元記事を表示

改めてassertの使いどころ

座談会で「よみやすい、しかも仕様変更しやすいコードを目指そう!」をテーマに企画して、いろいろと書籍などを見ていたら、「契約プログラミング」というアプリケーション開発設計があるそうで、それをassertを使って実現するらしいのだが、改めてassertの使いどころをまとめてみた。

正直、私自身もassertなんてJUnitでのユニットテストの時ぐらいしか使っていない。。。。

# はじめに
– この記事は、[javaのマニュアル](https://docs.oracle.com/javase/jp/8/docs/technotes/guides/language/assert.html)を参考に作成しました。
– javaのドキュメントを参考にして作成していますが、「使いどころ」という観点では、他の言語でも使える内容だと思います。

# そもそも、assertってなんだ。

– 条件が**不一致(false)**の場合、AssertionErrorをスローする。

[javaのマニュアル](https://docs.oracle.com/javase/jp/8/docs/technote

元記事を表示

[Gmail API] Javaでユーザー設定(言語、不在通知、自動転送、POP、IMAP)を取得する

Gmail API v1(Java)を使用して、
Gmailのユーザーの設定情報を取得する方法
についてご紹介します。

取得できるユーザーの設定情報は下記の5つになります。
・言語の設定
・不在通知の設定
・自動転送の設定
・POPの設定
・IMAPの設定

**・言語の設定**
Gmailメニュー 「設定」 -> 「全般」 -> 「言語」
で設定できる内容です。

**・不在通知の設定**
Gmailメニュー 「設定」 -> 「全般」 -> 「不在通知」
で設定できる内容です。
#6【勉強メモ】エヴァンス本からざっくり理解するDDD

## 目標
・ふわっとした理解のDDDについて[エヴァンス本](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%B

元記事を表示

[Gmail API] JavaでGmailクライアントサイド暗号化(CSE)されたキーペアを取得する

Gmail API v1(Java)を使用して、
Gmailクライアントサイド暗号化(CSE)されたキーペアを取得する方法
についてご紹介します。

**Gmailクライアントサイド暗号化とは**
メールデータをGoogleクラウドベースストレージに転送または保存する前に
ブラウザ内で暗号化を行う仕組みです。
送信先の相手が受信するまで、メールデータは保護されます。
これにより機密データや規制対象データのコンテンツの機密性保持を強化できます。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[キーペアリストを取得](#1-キーペアリストを取得)|
||

元記事を表示

[Gmail API] Javaでメールの下書きを取得する

Gmail API v1(Java)を使用して、
Gmailのメールの下書きを取得する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[下書きID一覧を取得](#1-下書きid一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[下書きを取得](#2-下書きを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポン

元記事を表示

Eclipse 2024-03とLombok Plugin(1.18.30)の問題の回避策

## 最新のEclipseでLombokがエラーを出力する
Eclipse(2024-03)とLombok Plugin(1.18.30)の組み合わせでは、エラーが発生してコードに警告が出たり、コンパイル不能なケースがあるようです。
Gradleを使用しているとエラーの警告が表示されているのにコンパイルは通るという状態になります。

## 回避策
マーケットプレイスのプラグインは使用せず、 **[edgeバージョン](https://projectlombok.org/download-edge)をダウンロードして使用します** 。インストールの方法は通常版と同じです。
Windowsでダブルクリックで起動できない場合は、コマンドプロンプトから直接起動させてください。
“`batch
java -jar “`

また、慣れている方は`.ini`に`-javaagent:`で手動で指定しても良いでしょう。
インストール後にEclipseを再起動してから、ビルドを試してください。

## 今回の情報源
[Inte

元記事を表示

DJI Mobile SDKのサンプルコードでSimulatorを動かしてみる

## やりたいこと
ドローンを利用して自動操縦(Autopilot)のロジックを組みたいですが、自宅でドローンを飛ばしたら家が「破壊」されてしまうので、Simulatorを使いたいなと思いました。
色々と調べた結果、DJI Assistant 2というアプリがあるので、それを使って開発PCでデバッグしながら動きを見られるといいです。

それでは、早速作業に入りましょー!

## 必要なもの
– DJI Phantom 4
– リモートコントローラー(以下、RC)
– USBケーブル数本
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3747743/977cfd2c-43e6-29fc-d79a-1333bbe7cdca.png)

## バージョン
– 開発PC
– Android Studio Hedgedog
– Android SDK API Level 31
– Gradle 7.5
– Gradle JDK Correcto-11
– Simu

元記事を表示

[Gmail API] Javaでメールボックス内のメッセージを取得する

Gmail API v1(Java)を使用して、
Gmailのメールボックス内のメッセージを取得する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[メッセージ一覧を取得](#1-メッセージ一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[メッセージを取得](#2-メッセージを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内

元記事を表示

[Gmail API] JavaでGmailのフィルタ情報を取得する

Gmail API v1(Java)を使用して、
Gmailのフィルタ情報を取得する方法
についてご紹介します。

**Gmail フィルタとは**
受信したメールを設定したフィルタに応じて管理する機能です。
Gmailの「設定」 -> 「フィルタとブロック中のアドレス」 から設定できます。
作成可能なフィルタは1000個までです。
***フィルタ設定画面***

##### フィルタの条件の設定UI

##### フィルタの条件が一致した場合のアクションの設定UI

元記事を表示

ABC345A~Dの解答[Java]

## はじめに
今回はコンテスト中にDまで解いたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc345/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A – Leftrightarrow
問題文は[こちら](https://atcoder.jp/contests/abc345/tasks/abc345_a)

先頭が`<`か、末尾が`>`か、`=`を取り除くと$2$文字になるかで判定しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out =

元記事を表示

ABC344A~Fの解答[Java]

## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでFまで載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc344/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。

## A – Spoiler
問題文は[こちら](https://atcoder.jp/contests/abc344/tasks/abc344_a)

`|`の中かをbooleanで管理して解きました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWrite

元記事を表示

たった2つのステップを意識するだけで書けない単体テストがほぼなくなる

# はじめに

この記事は [レガシーコード改善ガイド: 保守開発のためのリファクタリング](https://www.amazon.co.jp/%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E6%94%B9%E5%96%84%E3%82%AC%E3%82%A4%E3%83%89-Object-Oriented-SELECTION-%E3%83%9E%E3%82%A4%E3%82%B1%E3%83%AB%E3%83%BBC%E3%83%BB%E3%83%95%E3%82%A7%E3%82%B6%E3%83%BC%E3%82%BA/dp/4798116831/ref=sr_1_1?adgrpid=110297426544&dib=eyJ2IjoiMSJ9.Kem2f28RTWMOu7rFHElhzozGYsOqyqI32IbcB5eEZKSLoJSA3T_6XAEQi0OfxpRXj8WkO9D6WfYF0aIw_ZVjFhLh_eBgJ_DG-9Hpd0USbD-mWK3Iy7j9035jbPmfaRkBQ

元記事を表示

Javaで文字列を出力してみよう!

# 文字列の出力の実装
### ■ 前提条件
Javaの環境構築が完了していること。
まだの方は[こちらの記事](https://qiita.com/git2024/items/101bfb6b40d0c9fcc882)を参考に環境構築を行ってくだい。
### ■ 手順1
メモ帳などのエディタに、以下のコードをそのままコピペで貼り付けてください。
“`java:画面に文字列を出力するサンプルコード
class Sample1 {
public static void main(String[] args) {
System.out.println(“ようこそJavaへ!”);
System.out.println(“Javaをはじめましょう!”);
}
}
“`
### ■ 手順2
名前を付けて保存します。
クラス名.java(今回は”Sample1.java”)の形式です。
文字コードはUTF-8を指定しています。
保存先はどこでも問題ありません。
例として、”C:\test” のフォルダに保存しました。

![image.png]

元記事を表示

[Gmail API] Javaで送信者エイリアスを取得する

Gmail API v1(Java)を使用して、
Gmailの送信者エイリアスを取得する方法
についてご紹介します。

**送信者エイリアスとは**
メールを送信する時、送信者エイリアスからメールを送信しているように見せることができる機能です。
最初に、メール転送を設定してアクティブにしておきます。
Gmailでは、「設定」 -> 「アカウントとインポート」 -> 名前:「他のメールアドレスを追加」
から設定できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にあ

元記事を表示

Circular view pathのエラー解決

Controllerクラスの単体テストをJUnitで行った際に、jakarta.servlet.ServletException: Circular view path というエラーを解決した方法の備忘録です。

Circular view pathのエラーの原因はこれだけではないと思いますが、自分でエラー原因を調べていたときに、なかなか検索にヒットしなかったため、投稿することにしました。

(私は初学者なので記事に間違いがあるかもしれません。指摘やアドバイス、コメント等があれば遠慮なくお願いいたします。)

# 環境
Spring Tool Suite 4.21.1
JUnit 5

# 実行したControllerTestクラス

ControllerTestクラスのコードのうち、問題のエラーが発生した箇所を抜粋します。

“`SampleControlleTest.java

// サービスクラスから”success”の結果が返ってきたとき、complete.htmlを返すかどうかをテストする
@Test
void test() throws Exception {

元記事を表示

実業務で使うオブジェクト指向(個別処理呼び出し)

# この記事は?
オブジェクト指向を実業務でどう使うのかって話、その1。
個別処理の実装時に、呼出元を修正しなくてよくなるよ。

# 想定環境
* Java
* Spring Boot
* Mybatis

# 実装
:::note warn
業務で実装したコードを、退職後に思い出しながら手打ちしている
:::
:::note warn
継承に関するところを主として記載しているため、本番運用で考慮すべき事項に対応してない(テーブルの内容やBeanのキャッシュ、エラーハンドリングなど)
:::

### 個別処理用の基底クラス
“`Java:BaseExecutor.java
public abstract class BaseExecutor {
/**
* 個別処理対象の判定。
* @param args 処理に使用するパラメータ配列。
* @return 個別処理対象の場合true、そうでなければfalse。
*/
public boolean executable(Object args…) {
ret

元記事を表示

【java】インターフェースの特徴について

javaSilver勉強にあたって、javaのインターフェースについてまとめてみた。

インターフェースには次のような特徴がある。
・公開するためのものなので、publicなメンバを定義する。
・インスタンス化できない。
・抽象メソッドを定義できる
・デフォルトメソッドとstaticメソッドとして実装を定義できる
・デフォルトメソッドとstaticメソッドから利用されることを想定し、privateな具象メソッドを定義できる。
・定数は定義できるが、フィールドは定義できない。

 
 
またインターフェースでは実装を持たない抽象メソッドの宣言で、abstractで修飾されていなくても、暗黙的にabstractであると解釈される。

例:
“`
public String methodA();
“`

finalで抽象メソッドを宣言できない。
finalは変更できないことを宣言するもので、この抽象メソッドはインターフェースを実現したクラスによってオーバーライドされるために存在する。つまり、変更されるのが前提であり、インターフェースに定義する抽象メソッドはfinalで修飾することができな

元記事を表示

[Gmail API] Javaで転送アドレスを取得する

Gmail API v1(Java)を使用して、
Gmailのメールボックス内の転送アドレスを取得する方法
についてご紹介します。

**転送アドレスとは**
受信したメールを設定したメールアドレスへそのまま送る機能です。
Gmailでは、「設定」 -> 「メール転送とPOP/IMAP」 -> 「転送先アドレスを追加」
から設定できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指

元記事を表示

OTHERカテゴリの最新記事