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

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

[Java] Refaster templateの自作による機械的なリファクタリング(Gradle)

# 概要

大規模なリファクタリングを安全に行うため、Google製のJava静的解析ツールである[Error Prone](https://errorprone.info/)にて、自作の[Refaster template](https://errorprone.info/docs/refaster)に対して[Patch作成機能](https://errorprone.info/docs/patching)を利用したソースコードの一括置換を試みました。

本記事では、その手順をまとめています。

# 実行手順

## 1. [Refaster Template](https://errorprone.info/docs/refaster)クラスを作成する

例: [Apache Commons DbUtils](https://commons.apache.org/proper/commons-dbutils/)の[DbUtils#closeQuietly](https://commons.apache.org/proper/commons-dbutils/apidocs/org/a

元記事を表示

Protocol Buffers v26.0 の破壊的変更

# protobuf v26.0 と protobuf-java v4.26.0

protobuf v26.0 が 2024/03/14 にリリースされましたが、Java, PHP, C++, Ruby, Python には破壊的変更が含まれています。

https://github.com/protocolbuffers/protobuf/releases/tag/v26.0

他の言語は詳しく分かりませんが、Java ではかなり大きな変更が入っており、[protobuf-java](https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java) のメジャーバージョンが上がっていて v4.x となっています。(マイナーバージョンは、protobuf のバージョンと同期しています)

大きな問題点は、protoc v26 以降でコンパイルされたファイルは、protobuf-java v3.25 以下ではコンパイル・動作できず、v4.26 以降を利用する必要がある点です。

速報的に、Java でどう対処すれば

元記事を表示

[Google Drive API v3] Javaでファイルのリビジョンを更新・削除する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのリビジョンを更新・削除する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[リビジョンを更新](#1-リビジョンを更新)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[リビジョンを削除](#2-リビジョンを削除)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. リビジョンを更新

### 1.1. スコープ
このAPIを実行するには、以

元記事を表示

ChatGPTや他3種の生成AIに、Androidアプリでタップした時にテキストを1秒表示して消す処理を聞いて、結果を比較 →性能差・各特徴が見られる

# はじめに

本稿では、下記の記事で記載した、Androidアプリでタップした時にテキストを1秒表示して消す処理を行うコードの作成について、
4種の生成AI、ChatGPT・Phind・Microsoft Copilot・Google Gemini、のコード生成結果を比較します。

https://qiita.com/dl_from_scratch/items/b5d6ab05464f8e25faf5

Androidのアプリの作り方を、ほとんど知らない状態で(※1・※2)、タップした時にテキストを1秒表示して消すような、簡単なサンプルアプリを試しに作ってみようと思った時に、
Androidアプリに関わったことがない、何も分からない状態で、一から検索して読み調べてコードを作るのは(簡単なコードであっても)相当面倒くさいな…、と思ってしまいます。

そこで、4種の生成AIに聞いて、タップした時にテキストを1秒表示して消す動作を行うサンプルプログラムを作ってもらい、うまく動作するかを試してみます。

※1: ただし、Android Studioの空のサンプルプロジェクトをそのままビル

元記事を表示

[Google Drive API v3] Javaでファイルのリビジョンを取得する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのリビジョンを取得する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[リビジョンリストを取得](#1-リビジョンリストを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[リビジョンを取得](#2-リビジョンを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. リビジョンリストを取得

### 1.1. スコープ
このAPIを実行

元記事を表示

#1【勉強メモ】エンジニア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

元記事を表示

[Google Drive API v3] Javaでファイルのコメントの返信(リプライ)を追加・変更・削除する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのコメントのリプライを追加・変更・削除する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[リプライを追加](#1-リプライを追加)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[リプライを変更](#2-リプライを変更)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[リプライを削除](#3-リプライを削除)|
||1|[スコープ](#31-

元記事を表示

[Google Drive API v3] Javaでファイルのコメントの返信(リプライ)を取得する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのコメントのリプライを取得する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[リプライリストを取得](#1-リプライリストを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[リプライを取得](#2-リプライを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. リプライリストを取得

### 1.1. スコープ
このAPIを実行す

元記事を表示

[Google Drive API v3] Javaでファイルのパーミッションを付与・更新・削除する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのパーミッションを付与・更新・削除する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[パーミッションの付与タイプと役割(ロール)](#1-パーミッションの付与タイプと役割ロール)|
||1|[アクセス権の付与タイプ](#11-アクセス権の付与タイプ)|
||2|[役割(ロール)](#12-役割ロール)|
|2||[パーミッションを付与](#2-パーミッションを付与)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[パーミッションを更新](#3-

元記事を表示

文字列からJSONへ変換、JSONからキーを削除、String型からbyte型に変換

JSONの操作には、Jackson使っています。

メソッドには、throws UnsupportedEncodingException, JsonMappingException, JsonProcessingException を付けています

jacksonに関するimport

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;

“`java
String jsonStr = “{\”ID\”: 2, \”Name\”: \”taro sato\”, \”token\”: \”axffee33333ff

元記事を表示

IntelliJ の CheckStyle-IDEA Plugin で、Checkstyle v8 系の対応が削除されました

IntelliJ の CheckStyle-IDEA Plugin ですが、 **2024/03/10 にリリースされた v5.88.0 で Checkstyle v8 系の対応が削除されました。**

> 5.88.0: Breaking: Drop support for Checkstyle 8, to reduce archive size.
> [Release 5.88.0 · jshiell/checkstyle-idea](https://github.com/jshiell/checkstyle-idea/releases/tag/5.88.0)

![checkstyle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205989/218045b2-d7e2-aa39-6d81-c83ecc7da2ab.png)

現在、設定で選べる Checkstyle のバージョンが v9.0.1 〜 v10.14.0 になっています。
ただ、Checkstyle はプロパティの入れ替えが結構多

元記事を表示

Minecraft Forge 1.18.2 Part1 自分のMODの下準備

# はじめに
こんにちは!
DegeneracyCraft開発者のEpitapです!
MODを作ろうとしてもよく分からない方、いらっしゃるのではないでしょうか?
この記事は(私が)出来る限り思い出して書き連ねるといったものです!
まずは開発環境構築というもの(コードを描くキャンバス+そのコードを実行可能にする環境が整ったパッケージというイメージでOKです)を起動するという解説をしようと思いましたが…

https://qiita.com/tooooowa/items/15ced22071759d7d79a3

この記事が**非常に分かりやすく**書いているのでこれを参照するとよいでしょう!

この次にForgeのMODファイルをダウンロードを行いましょう!

https://files.minecraftforge.net/net/minecraftforge/forge/index_1.18.2.html

Show All Versionから様々なVersionのmdkファイルをダウンロードできます。
ダウンロードしたのち、適当なフォルダを作成して解凍しましょう。

その後Inte

元記事を表示

[Google Drive API v3] Javaでファイルのパーミッション情報を取得する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのパーミッション情報を取得する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[パーミッションリストを取得](#1-パーミッションリストを取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[パーミッションの情報を取得](#2-パーミッションの情報を取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|

## 1. パーミッションリストを取得

#

元記事を表示

ServletContainerInitializer を実装してみた

### ServletContainerInitializerを実装してみた

結構はまったので、自分用のメモとして残す

# 環境
Java17
Wildfly28

一番参考になったのは、以下の記事です。
https://www.logicbig.com/tutorials/java-ee-tutorial/java-servlet/servlet-container-initializer-example.html

要約すると
・ServletContainerInitializerを実装したクラスをおさめたJarファイルを作る。
・上記のJarを組み込んだWebアプリを作る。warが出来ます。

従って、プロジェクトは2個作成する必要があります。

## プロジェクト1
ここでは ServletContainerInitializerを実装したクラスを作成します。

呼ばれた事を確認するだけの、ログ出力をしているだけです。

“`Java
package iinit;

import jakarta.servlet.ServletContainerInitializ

元記事を表示

[Google Drive API v3] JavaでDriveのファイルのラベルを更新する

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルのラベルを更新する方法
についてご紹介します。

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

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

## 1. ラベルを更新
Driveにあるファイルのラベルを更新します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
DriveScopes.DRIVE
DriveScopes.DRIVE_FILE
DriveScopes.DRIVE_M

元記事を表示

[Google Drive API v3] JavaでDriveのファイルをダウンロードする

Google Drive API v3(Java)を使用して、
Driveに置かれているファイルをダウンロードする方法
についてご紹介します。

Driveに置かれているファイルをそのままダウンロードする方法と
ファイルの形式を変更してダウンロードする方法についてご紹介します。

Googleスプレットシートなどはそのままダウンロードすることはできませんので、
形式を変更してダウンロードすることになります。

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

|No||目次|
|—|—|—|
|1||[ファイルをダウンロード](#1-ファイルをダウンロード)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
|2||[形式を指定してダウンロード](#2-形式を指定してダウンロード)|

元記事を表示

Androidからスマートウォッチにデータを送ってみよう!(MessageClient)

WearOS開発において、教材や実装例は2014年~2015年付近のものが多く、特にAndroidからWearOSにデータを送信するコードが載っているサイトも数多くありません。
そこで初心者の方にもわかりやすくほぼコピペでできるアプリ実装例を書きました。
WearOS開発に詰まっている方に是非チェックしていただきたいです。
https://note.com/bakugui_inago/n/nc9cd083e4918?sub_rt=share_pw

アプリご紹介
Androidで値を入力し、ボタンを押したらWearOSに値を送って表示させるシンプルなアプリ。

![スクリーンショット 2024-03-06 155048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3510524/3654add6-d459-5667-7562-091fc73aa5ae.png)

                      ↓

![スクリーンショット 2024-03-06

元記事を表示

[Google Drive API v3] Javaでファイルをアップロード・生成・コピー・更新・削除する

Google Drive API v3(Java)を使用して、
Driveにファイルをアップロード・生成・更新・コピー・削除する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[ファイルをアップロード](#1-ファイルをアップロード)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[ファイルを生成](#2-ファイルを生成)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[ファイルをコピー](#3-ファイルをコピー)|
||1|[スコープ]

元記事を表示

[Google Drive API v3] JavaでDriveのゴミ箱を空にする

Google Drive API v3(Java)を使用して、
Driveのゴミ箱を空にする方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[ゴミ箱を空にする](#1-ゴミ箱を空にする)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. ゴミ箱を空にする
Driveにあるゴミ箱を空にします。

### 1.1. スコープ
このAPIを実行するには、以下のスコープを指定してください。

DriveScopes.DRIVE

[⧉[Google Drive API v3] JavaでDrive APIを使う(2.2 Driveインスタンスを取

元記事を表示

Javaの型安全とOptionalを上手く使えば便利になるという話

## 概要
今回は、java.util.Optionalの便利さと使用方法についての内容です。

### 環境

– Windows 10
– Oracle JDK 17

## Optionalの利用が推奨される理由
値の取得時にnullが許容されない場合、Optionalを使用してnullを管理する方が、取得時に都度nullチェックを行うよりも優れている、というのが本稿の主旨です。

以前までは、「Optionalなど使用せずとも、受け取り側でnullのケースを処理すれば良い」と考えていました。
しかし、この“Optional“は便利な機能を有しています。

Optionalを使用する最大の利点は、コードをコンパイルする際、開発者にnullの可能性を事前に意識させる暗黙のガイドを提供することです。
具体的には、Optionalを使用することで、戻り値がnullの可能性がある場合に、その値を使用する前にチェックを強制してくれます。
これにより、値がnullである可能性を事前に気づき、NullPointerExceptionを防ぐことができます。

### Opt

元記事を表示

OTHERカテゴリの最新記事