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

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

[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」(自身)と指

元記事を表示

javacコマンドとjavaコマンドについて

javaSilvarの問題の一部抜粋。
javacコマンドとjavaコマンドに関して2点気をつける。

・コンパイルするときのjavacコマンドの引数には、拡張子の.javaまで含むソースファイル名を記述する。
・実行するときのjavaコマンドの引数にはクラスファイルのファイル名ではなく完全修飾クラス名を記述する。

例:
“`Sample.java
> javac Sample.java
> java Sample
“`
/

簡単ではありますが以上となります。
javaSilverの資格勉強の一環としてQiitaに投稿させていただきます。

元記事を表示

#5【勉強メモ】エヴァンス本からざっくり理解する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 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-レスポンスの内容)|

## 1. 変更履歴一覧を取得
メールボックスの変更履歴一覧を取得します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定し

元記事を表示

[Java]HttpHeadersからMultiValueMapに変換

“`java
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.springframework.http.HttpHeaders;
import org.springframework.util.MultiValueMap;

public class HttpHeadersToMultiValueMapConverter {

public static MultiValueMap convert(HttpHeaders headers) {
MultiValueMap multiValueMap = new HttpHeaders();

headers.forEach((key, values) -> {
multiValueMap.put(key, values);
});

元記事を表示

AWS BedRock(Java) を見よう見まねで実装してみる

AWSのBedRockが手軽に大規模言語モデルを実装できて面白そうなので試しに使ってみる。

公式ドキュメントのコードライブラリを参考に作成(事前にモデルアクセスの許可を設定しておいてください)
※東京リージョンで [Anthropic Claude 2.1] モデルが使用できるようになっているのでそちらを使用。
https://docs.aws.amazon.com/ja_jp/code-library/latest/ug/java_2_bedrock-runtime_code_examples.html
Spring Boot でWebアプリを作成していたので同じ環境に追加した。
“`
@PostMapping(“/getPrompt”)
public String getPrompt(Model model, RedirectAttributes redirectAttributes) {

// Anthropic ClaudeのモデルID
String claudeModelId = “anthropic.claude-v2:1”;

// プロン

元記事を表示

Javaでファイル・パスを取得するサンプル

“`java
import java.io.File;
import java.io.FileInputStream;

public class Main {
public static void main(String[] args) {
String pathname = “helloworld//src//main//resources//ValidationMessages.properties”;
try {
File file = new File(pathname);

System.out.println(“[01] getPath():[” + file.getPath() + “]”);
System.out.println(“[02] getAbsolutePath():[” + file.getAbsolutePath() + “]”);
System.out.println(“[03] getParent():[” + fi

元記事を表示

Javaの「自然順序付け」とは

## 背景
JavaのAPIを読んでいると「自然順序付け」という単語が頻繁に出てくるので
自然順序付けについて調べたことをメモ。

## 自然順序付けとは
オブジェクトをソートする際、
オブジェクト同士の大小を比較し順序を決める必要があるが、
自作クラスだとコンパイラはそれをどう順序付けしてよいか判断できない。

例えば、以下のような`Chara`クラスをソートしたいとする。
“`java
// 自然順序付けされていないキャラ
class Chara {
final public int hp;
final public String name;

public Chara(int hp, String name) {
this.hp = hp;
this.name = name;
}
}
“`
`Chara`は体力`hp`と名前`name`を持つ。
これを「体力`hp`の小さい順に並び替えたい」とプログラマが考えていたとして、
どこにも書いてないのでコンパイラは順序付けのやり方を知りようがない。

そのような場合に、
例えば`Comparable`インタフェースを

元記事を表示

Apexで個人取引先レコードの作成

# はじめに
個人取引先は取引先・取引先責任者の両方の役割を持つため、レコード操作時にどのオブジェクトに対する操作なのか、その指定方法を調査しました。
# やりたかったこと
Visualforceページ上のinputフィールドで入力された情報から個人取引先レコードを作成する
# やり方
以下で指定で個人取引先レコードの作成が可能でした。
– オブジェクトは取引先
– レコードタイプは個人取引先レコードタイプ
“`java:Apex
//変数を作成
Account newAccount = new Account();
//値を指定
newAccount.Name = ‘取引先名’;
newAccount.RecordTypeId = ‘ここに個人取引先レコードタイプID’;

//取引先レコードを作成
insert newAccount;
“`
レコードタイプIDは以下のように記述すると組織から自動的に取得可能
“`java:Apex
private Id getPersonAccountRecordType() {
List recordType

元記事を表示

競プロ用のチートシート(Java)

# はじめに
競プロでよく使う Java のチートシートを載せています。

# 標準入力
:::note warn
記号は次の意味で使い分けています。
整数:$N, M, A_i, B_i, H, W$
文字列:$S, T, S_i$
:::

:::note warn
コメントで記載されている部分に入るコードのチートシートになります。
“`java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// ここの部分を載せています
}
}
“`
:::

## 標準入力が int 型の場合
> $N$
> “`java
> int N = sc.nextInt();
> “`

> $N$ $M$
> “`java
> int N = sc.nextInt();
> int M = sc.nextInt();
> “`

> $N$
> $A

元記事を表示

[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

元記事を表示

OTHERカテゴリの最新記事