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

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

Spring Cloud Gatewayを使用してAPIゲートウェイを構築してみた

## 参考サイト
[Building an API Gateway in Java with Spring Cloud Gateway](https://www.youtube.com/watch?v=EKoq98KqvrI)

元記事を表示

Java開発者向け: GitHub ActionsでGraldeとSpotBugsを使ったCI静的解析の実装方法

### はじめに
– GitHub Actionsの詳細な説明は行いません
– Gradleを中心した説明になります。Mavenの説明は行いません。
– 私のイメージも交えて話します。誤っていたら指摘していただけると記事も私のイメージも修正できるのでありがたいです


# GitHubActionsのイメージ

![スクリーンショット 2024-03-05 12.35.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641519/02a83b99-199c-0916-2777-c2c98c3ef22e.png)

### 項目の説明

**ワークフロー(Workflow)**
ディレクトリにあるYAMLファイルで定義され、一連のジョブを含みます。
GitHubActionsにおける一番大きな枠組みです

https://docs.github.com/ja/actions/using-workflows/about-workflows

**イベント(

元記事を表示

Hello Worldからの復習 ~コンストラクタ編~

##### お品書き
+ コンストラクタって?
+ Sample
+


◆コンストラクタって?

今回もメソッド系の復習。
**コンストラクト(construct)**
組み立てる、作成するという英単語。
javaでのコンストラクタはオブジェクトを作成するための特殊なメソッド。

オブジェクトの初期化に使われる特殊なメソッドを
**コンストラクタ**という。

::: note
ルール①:名前がクラスと同じ
ルール②:戻り値を持たない
ルール③:new クラス名(コンストラクタへの引数)←呼び出し側のルール
:::

Sample

一般的にメソッド名は最初`小文字スタート`だが、`クラス名と同じにするルールの為、大文字スタート。`
“`java:java
class Student{
Student(String n){
.
.
}
Student(String n, int e, int m){
.
.
}
}
“`

オーバーロード編でsetDataというメンバー変数の情報を設定するメソッドを復習したが、

https://

元記事を表示

[Google Sheets API] 条件付き書式を追加・更新・削除する

Google Sheets API v4(Java)を使用して、
スプレットシートのセルに条件付き書式を追加・更新・削除する方法
についてご紹介します。

**条件付き書式とは**
シートメニュー:「表示形式」 ⇨ 「条件付き書式」
で設定することができます。

条件付き書式には2種類存在します。
・単一色
  セルの値が条件を満たした場合、セルに指定した書式を設定します。

  条件を満たしたセルに設定できる書式は下記になります。
  ・太字
  ・斜体
  ・下線
  ・取り消し線
  ・文字色
  ・背景色

・カラースケール
  複数セル(行または列)内の値の大小により、
  背景色を薄くしたり濃くしたりします。

コードを実行する際は、
[⧉[Google Sheets API] Googl

元記事を表示

Hello Worldからの復習 ~オーバーロード編~

話の枕を書かずにやってみたら、シンプルになった。

あたりまえかw

##### お品書き
+ オーバーロードって?
+ メリットは?
+ Sample

—-

◆オーバーロードって?

設計図クラスを作るときに、同じ名前で引数の型や数が違うメソッドをいくつも定義できる。
メソッドを複数定義することをいう。

—-

**setDataをオーバーロードしている**↓
“`java:java
class Student{
void setData(String n){ //名前の引数のみ
.
.
}
void aetData(String n, int e, int m){ //名前とint型の点数を2つ
.
.
}
}
“`

**オーバーロードしたのを呼び出すmainメソッド**↓
“`java:java

main( ~ ){
Student stu = new Student(); //Studentクラスを基に変数stuを作りインスタンス化
stu.setData(“大輔”);
stu.setData(“大輔”, 80, 90

元記事を表示

[Java] java.util.Date型からシリアル値を取得する

JavaでGoogle Sheets APIを使用する上で
エクセルやスプレットシート上で扱うシリアル値を扱う必要が出てきましたので
簡単にはですがここに備忘録として残します。

**シリアル値とは?**
1900年1月1日を1として何**日**経過したかを示す値

**UNIX時間とは?**
1970年1月1日 0時0分0秒を0として何**秒**経過したかを示す値

### 1. Date型からシリアル値に変更する際の考え方
UNIX時間を日数に変更して、シリアル値とUNIX時間の日数の差を足します。

① UNIX時間を日数に変更
 getTimeで取得したUNIX時間(ミリ秒)を1日のミリ秒で割って日数にします。
 もし、Dateが日本標準時の場合は、割る前のミリ秒に9時間(ミリ秒)を足します。
“`
 date.getTime()/(24*60*60*1000)
//(date.getTime()+(9*60*60*1000))/(24*60*60*1000)
“`
② 1900年1月1日と1970年1月1日の差を足す
 0スタート、1スタートの違いと閏年も考えて、日数を

元記事を表示

Hello Worldからの復習 ~オブジェクトの使い方編~

##### お品書き
+ オブジェクトの使い方って?
+ Sample

—-

◆オブジェクトの使い方って?

設計図クラスを基にオブジェクトを作って利用するには大きく2つのステップを踏む
まず、オブジェクトを生成し、次にオブジェクトの持っている**変数**や**メソッド**を利用する

①生成

“`java:java
クラス名 オブジェクト名 = new クラス名();
Student stu1 = new Student();
“`
前回の設計図編を参考

https://qiita.com/tianshandafu894/items/0655cdf0849f363469e7

上記のコードでnewした時、メモリ上に新しく領域が確保され、3つの変数の領域と3つのメソッドの情報が含まれるイメージの図↓
“`mermaid
classDiagram
Student –|> newしたメモリ領域
class Student{
+name :String
+engScore :int
+mathScore :int
+

元記事を表示

spring-security-testのアノテーション使用時に気をつけること

## この記事でわかること
spring-security-testを行う時に注意すべきアノテーションについてまとめております。
spring-securutyの知識がある前提でお読みください。

## @WithMockUser
このアノテーションを使用すれば、特定のユーザーとしてどのようにテストを最も簡単に実行する方法です。
`@WithMockUser`を付加することでユーザー名 “user”、パスワード “password”、ロール “ROLE_USER” を持つユーザーとして実行されます。
“`java:
@Test
@DisplayName(“todo情報を1件削除”)
@WithMockUser
void deleteTodo() throws Exception {
doNothing().when(todoService).deleteTodo(anyInt());
mockMvc.perform(delete(“/api/todos/999999”)
.

元記事を表示

[Google Sheets API] グラフを追加・更新・削除する

Google Sheets API v4(Java)を使用して、
スプレットシートにグラフを追加またはそのグラフを更新・削除する方法
についてご紹介します。

メニュー:「挿入」 ⇨ 「グラフ」
で追加できるグラフです。

Sheets APIでは、次のグラフを扱うことができます。
・基本的なチャート
  ・棒グラフ
  ・折れ線グラフ
  ・面グラフ
  ・縦 棒グラフ
  ・散布図
  ・コンボチャート
  ・階段状の面グラフ
・バブルチャート
・ローソク足チャート
・ヒストグラムチャート
・組織図
・円グラフ
・スコアカード チャート
・ツリーマップ チャート
・ウォーターフォールチャート

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`

元記事を表示

テキストファイルをダウンロードする(Java, SpringBoot)

### 動作環境
Java 17
Spring boot 3.2.1
Gradle

### まずは小さく動かしてみる
下記はテキストファイルをダウンロードするためだけのSpringBootのプロジェクトです。

https://github.com/yusuke/text-file-download

クローン、ビルド、実行して、`http://localhost:8080/download`にアクセスすれば直書きした文字列が、txtファイルでダウンロードされるのでお試し下さい。

こちらのソースは[『プロになるJava』](https://gihyo.jp/book/2022/978-4-297-12685-8)の著者の一人である[山本裕介さん](https://twitter.com/yusuke)が管理されるLINEオープンチャットにて質問した際に、ご本人から直接ご回答いただいた時のものです。(CC0のため引用)

## 記事の内容
– ローカルのファイルのダウンロード処理を実装
– テキストファイルのダウンロードが失敗
– Content-Disposition「filena

元記事を表示

[Google Sheets API] スライサーを追加・更新・削除する

Google Sheets API v4(Java)を使用して、
スプレットシートのシートにスライサーを追加・更新・削除する方法
についてご紹介します。

**スライサーとは**

スライサーとは、セルの表示方法を自由に変更できる機能です。
フィルタ機能と似ていますが、表だけではなく、ピボットテーブル、グラフ等も
フィルタリングできるのが特徴です。
フィルタリングした結果の表示は保存されず、シートを再読み込みなどすると
リセットされてしまうのでご注意ください。

スプレットシートからは、メニュー:「データ」 ⇨ 「スライサーを追加」
でスライサーの追加ができます。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.c

元記事を表示

cameraXで撮影した画像が勝手に回転するんだけど!?って貴方に【Androidアプリ開発】

“`
最終更新日: 20240304
“`
いざカメラアプリの開発を開始すると
縦撮影した画像が勝手に90°回転するなど厄介な問題が発生します(端末によるかも)

最終的には下記の公式ドキュメントを見たらすんなり解決したんですけど
ここ以外に望んだ情報はなかった気がするので本記事に残しておきます

https://developer.android.com/training/camerax/configuration?hl=ja

https://developer.android.com/reference/androidx/camera/core/ImageCapture#setTargetRotation(int)

https://developer.android.com/training/camerax/orientation-rotation?hl=ja

# 要件
画面の向きを縦に固定した状態で
画像を回転したい

# ソース
Java言語で書いています
事情あってソースコードを全部載せることができないのですが
雰囲気でわかると思います

## 端末の回転

元記事を表示

アクセス修飾子

アクセス修飾子を利用するとクラスやメソッド、フィールド等へのアクセス制限を行う事が出来ます。
アクセス修飾子にはpublic,protected,privateなどの種類があります。

元記事を表示

[Google Sheets API] グループ化を追加・更新・削除する

Google Sheets API v4(Java)を使用して、
スプレットシートのシート単位の保護と、セル範囲の保護の追加・更新・削除
についてご紹介します。

#### グループ化とは
指定したセルの範囲(行または列)をまとめて折りたたんで表示にしたり、
再表示したりする機能です。
単純な列、行の非表示機能とは異なり、複数の行、列をグループ化したり、
グループ化を入れ子(階層)にしたりできます。

グループ化を入れ子(階層)にした場合、
列なら上から1階層、2階層、3階層。。。
行なら左から1階層、2階層、3階層。。。
というように、より広い範囲が上位の階層となります。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://q

元記事を表示

入れ子になったJSONからJavaオブジェクトにデシリアライズしたい

## やりたいこと

ObjectMapperでJSONが入れ子構造になっているJSONを
Javaオブジェクトにデシリアライズしたい。

対象JSONは、
・dates, page, results, total_pages, total_resultsが項目として存在。
・dates内に2つ項目が含まれている。
・results内が配列で、かつ複数項目が含まれている。

## エラーの原因と解決策
JavaのBeansクラスが正しく構成されていなかった。
JSONの入れ子構造に合わせて、Beansを構成しなければいけない。

“`java:MainController.java
ObjectMapper mapper = new ObjectMapper();
try {
Json list = mapper.readValue(json, Json.class);
} catch (JsonParseException e) {
e.printStackTrace();

元記事を表示

[Google Sheets API] Bigqueryのデータを使用して表を作成する

Google Sheets API v4(Java)を使用して、
スプレットシートにBigqueryのデータを使用して表を作成する方法
についてご紹介します。

メニュー:「データ」 ⇨ 「データコネクタ」 ⇨ 「Bigquery に接続」
で実行できる内容と同じです。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`
|No||目次|
|—|—|—|
|1||[準備](#1-準備)|
|2||[表を作成する](#2-表を作成する)|
||1|[テーブルをそのまま使用する](#21-テーブルをそのまま使用する)|
||2|[表にするカラムを指定する](#22-表にするカラムを指定する)|

## 1. 準備
まず、
使用しているサー

元記事を表示

jsonファイルから情報を取得してAPIコールする

# 要件
1 複数のサービスAPIをサービスごとにメソッド化する
2 サービスAPIの引数にはjsonを指定し、json内にpostリクエストの内容やgetリクエストの内容を記述する
3 APIリクエストhttpリクエストは共通化メソッドにする
サービス名の種類:Aサービス、Bサービス
4 共通クラスはUtilクラスとする
プログラム言語:java
jdk:OpenJDK21
使用API:Postman Echo

## Main.java
“`java:Main.java
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import パッケージ.Util;

public class Main {
public static void main(String[] args) {
try {
// request.jsonのパス
String filePath = “

元記事を表示

NVIDIA With RTXを 4080/4090 で実行した際のテスト文

# Chat with RTX の動作確認です。
テスト用データなので

\“`java
とかやってないです。まんま \“` で閲覧しておいてください。

YouTube 動画の URL です。
https://youtu.be/iverju3xeWk

– [x] 12.Chat with RTX の動作テスト
– [x] java → Python
– [x] ラムダ式について
java のラムダ式の使い方の概要を教えてください。
Please give me an overview of how to use lambda expressions in java.
– [x] What is a realm?
https://docs.oracle.com/javaee/5/tutorial/doc/bnbxj.html#bnbxm
– [x] Ansible Playbookの概要を教えてください。
Please give me an overview of Ansible playbooks.

元記事を表示

多態性

ガソリン車、ハイブリッド車、電気自動車は厳密には別物ですが、大まかに捉えると車です。
このように、多態性(polymorphism)は厳密には異なるけれど本質的には類似したものを、ざっくりと捕らえる考え方です。

多態性を実現する方法としては
・キャスト
・継承の活用
などがあります。

元記事を表示

[Google Sheets API] 名前付き範囲を追加・更新・削除する

Google Sheets API v4(Java)を使用して、
スプレットシートに名前付き範囲を追加・更新・削除する方法
についてご紹介します。

**名前付き範囲とは**
Google スプレッドシート内の範囲に名前を付けることができます。
名前をつけることで範囲を見つけやすくしたり、数式を簡単に作成することができます。
例えば、「A1:B2」の範囲に「test」という名前をつけると、
「=SUM(A1:B2)」を「=SUM(test)」と入力することができます。

設定した名前付き範囲は、
スプレットシートのメニュー 「データ ⇨ 名前付き範囲」
から確認することができます。

コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`

|No|目

元記事を表示

OTHERカテゴリの最新記事