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

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

[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

元記事を表示

GradleでオリジナルのSourceSetを利用してハマった話

# はじめに

Gradleを用いたJavaプロジェクトで、デフォルトの規約に沿わないディレクトリ構成をとるときは `sourceSets` の設定を変更して実現します。
そのようなオリジナルのディレクトリ構成をとったことで発生した問題の解決記録です。

参考:[【Gradle】規約と異なる構成のJavaプロジェクトをビルドする](https://qiita.com/maple_syrup/items/fdea051f9e0391441c30)

# 結論

**`srcDir` メソッドでディレクトリを指定した場合は追記となり、デフォルトの設定 (`src/[ソースセット名]/java` など) は残ったまま**となります。
デフォルトの設定が残っていると困る場合は `srcDirs` プロパティを直接上書きしましょう。

# やったこと

以下のような構成のプロジェクトで、結合テストを実行するCIの修正をしていました。

“`plaintext:プロジェクト構成 (抜粋) ├ subdir1/src
| ├ main (メインのソースコード)

元記事を表示

The Best Java Full Stack Training Institutes in Hyderabad

The Best Java Full Stack Training Institutes in Hyderabad
Introduction:
Hyderabad, often hailed as the “Cyberabad” of India, is renowned for its thriving IT industry and technological prowess. With the increasing demand for skilled Java Full Stack Developers, several training institutes in Hyderabad have emerged to cater to the growing needs of aspiring professionals. In this comprehensive guide, we’ll delve into the best Java Full Stack training institutes in Hyderabad, highlighting their key

元記事を表示

#4【勉強メモ】エヴァンス本からざっくり理解する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

元記事を表示

Integer型とint型の違い

# Integer型とint型の違い

私自身プログラミングが非常に浅く、日々新しい言葉に疑問を持ちながらそのうち分かるようになると言われていましたが、一度腹落ちするまで調べました。

# int型(プリミティブ型)
intはJavaのプリミティブデータ型(基本データ型)の一つで、整数を表します。これはメモリに単一の整数値単を直接格納する効率的な方法です。

単一の整数値とは

単一の整数値とは、1つの整数の値を指します。整数は、数学的には0, ±1, ±2, ±3, …のような小数点以下がない数のことです。整数は整数型(例: int)で表現され、通常はプログラム内で計算や処理の対象となります。

## 整数値を直接格納する効率的な方法とは

#### 今、箱の名前を **「年齢」** と宣言しました。

格納するものは「箱のようなもの」としてイメージしましょう。

年齢を扱う基本データ型は整数の「int型」になります。
これでint型の変数を年齢と宣言しました。
“`diff_java
public c

元記事を表示

[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を実行するには、以下のいずれかのスコープを指定し

元記事を表示

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

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

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

Gmailの「設定」 -> 「ラベル」 から確認・設定できます。
作成可能なラベルは10,000個までです。

ラベルにはシステムが用意したsystemとユーザーが作成したuserが存在します。
systemのラベルは作成したり削除することはできません。([3. システムラベル](#3-システムラベル))

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiit

元記事を表示

ローカル変数とフィールドの違いについて

ローカル変数とフィールド(クラス変数とも呼ばれる)は、Javaにおける変数のスコープと寿命に基づいて異なります。以下に主な違いをまとめました。

1.スコープ(Scope):
・ローカル変数: メソッド内で宣言され、そのメソッド内でのみアクセス可能です。
・フィールド: クラス内で宣言され、クラスの全てのメソッドからアクセス可能です。また、アクセス修飾子によってはクラス外からもアクセスできます。

2.寿命(Lifetime):
・ローカル変数: メソッドが実行されている間のみ存在し、メソッドの実行が終了すると消滅します。
・フィールド: オブジェクトが存在する限り、つまりオブジェクトがガベージコレクションによって破棄されるまで存在します。

3.初期化(Initialization):
・ローカル変数: 自動的に初期化されません。使用する前に明示的に初期化する必要があります。
・フィールド: 自動的にデフォルト値で初期化されます(例:int型の場合は0、オブジェクト型の場合はnull)。

4.アクセス修飾子(Access Modifiers):
・ローカル変数: アクセス修飾子を持

元記事を表示

ブロックをスポーンさせるスポナーを作成する

# 環境
PaperAPI : `1.20.4-R0.1`

# 完成物イメージ

# 手順
## CreatureSpawner を取得する
まず、全ての設定をのせるスポナーを座標などから取得します。
スポナーは、機能的ブロックのインタフェースである `BlockState` の実装クラスである `CreatureSpawner` クラスなのでキャスト等を用いて取得します。
“`java
// World型 world: スポナ

元記事を表示

[Gmail API] JavaでGmail APIを使う

Googleが提供しているGmail APIをJavaで使ってみました。

***Gmail APIとは***
Googleが提供しているAPIで、Gmailに関する操作ができます。

Gmail APIの利用料金は無料です。
ただし、1秒あたり250クォータの制限があります。
クォータの単位は、実行するGmailAPIの種類により決められます。
詳細はGoogleの公式ドキュメントをご覧ください。
[⧉APIの使用制限](https://developers.google.com/gmail/api/reference/quota)

|No|||目次|
|—|—|—|—|
|1|||[Gmail APIを使用するための準備](#1-gmail-apiを使用するための準備)|
||1||[プロジェクトの作成](#11-プロジェクトの作成)|
||2||[Gmail APIの設定](#12-gmail-apiの設定)|
||3||[APIを使用するためのキー取得](#13-apiを使用するためのキー取得)|
|2|||[Gmail APIを使ってみる](#2-gmail

元記事を表示

Java Goldの黒本に対する批判

## 初めに

この記事は志賀澄人氏の著書「徹底攻略Java SE 11 Gold問題集」に対する批判記事です。
2022年6月11日 第1版第2刷発行のものを引用しています。
この記事を書いた私自身は別に卓越したプログラマでもなんでもないので、誤りがあれば訂正をお願いします。

## 第1章

### staticで修飾されたネストしたクラス

黒本の29ページには

> クラス内に定義したクラスのことを総称して「ネストしたクラス」と呼びますが、正確にはネストしたクラスにはいくつかの種類があり、それぞれ次のような名称が異なります。

と書かれており、「ネストしたクラス」として以下の4つの種類が紹介されています。

– インナークラス
– staticインナークラス
– ローカルクラス
– 匿名クラス

これ以降、なんの断りもなく「staticインナークラス」という用語が黒本を通して使用されていますが、staticで修飾されたクラスはインナークラスではありません。
以下の通りオラクルの文書で明言されています。

> An inner class is a nested class th

元記事を表示

UnityでAndroid端末の回転ベクトルを取得する

## 概要

Android端末の複数センサを用いて算出された回転ベクトルをUnityから取得する方法についてまとめます.

## やりたいこと

Android OS は複数センサの情報を複合した回転ベクトルを算出できるので,Unityからその情報を取得したい.

## 解決手法
UnityからAndroidの回転ベクトルを取得するAndroid Pluginを作成.
## 環境
– Unity 2022.3.4f1
– Windows 11
– Google Pixel 3a
– Android バージョン12

## 実装
Androidプラグインの作成にはいくつかの方法がありますが,今回はJavaファイルをUnityのプロジェクト内に配置してプラグインとして読み込ませる方法をとることにしました.

プラグインの再利用や配布を考えるなら,直接Javaファイルを配置するのではなく,[Android Libraries や Android Archives (AAR) を利用した方法](https://docs.unity3d.com/ja/2022.3/Manual/android

元記事を表示

#3【勉強メモ】エヴァンス本からざっくり理解する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

元記事を表示

Spring Boot で作ったアプリをフリー枠で Web に公開(Render利用)

Spring Boot で作ったアプリをフリー枠で Web に公開したいと思い調べてみた
Render ( https://render.com/ )というクラウドサービスが見つかったので簡易的にやった時のメモを記載する
Heroku の無料枠がなくなってからなかなか見つからなかったので代替になるかも...
やったことの大枠は以下の感じ

– SpringBoot の簡易アプリを Github にリポジトリ登録
– Dockerfile を直下におく
– Render から Github 連携して公開

# SpringBoot の簡易アプリを Github にリポジトリ登録
作成したアプリは本当に簡易なやつです...
https://github.com/sueasen/springboot-demo2

Render でデプロイした時に動くように Dockerfile をプロジェクト直下に置いてます

“`Dockerfile:Dockerfile
FROM maven:3-eclipse-temurin-17 AS build
COPY ./ /home/app
RUN

元記事を表示

OTHERカテゴリの最新記事