- 1. [Google Tasks API(V1)] Javaでタスクリスト内のタスクの順序変更や親タスクを設定する
- 2. 【Android/Java】OkHTTPでDigest認証
- 3. 【Android/Java】Bluetoothペアリング機器の削除(任意のもの以外)
- 4. 【Android/Java】アプリ間データ共有 その2(Android11)
- 5. [Google Tasks API(V1)] Javaでタスクを作成・更新・削除する
- 6. Jacksonの JsonNode を使ってJSONの特定のキーを取得しようとしたとき、そのキーが存在しない場合は NullPointerException が発生します。
- 7. Spring bootの環境構築をしてみた(Intel Mac)
- 8. JVM – PCレジスタ
- 9. ABC348A~Fの解答[Java]
- 10. ABC347A~Eの解答[Java]
- 11. ABC346A~Fの解答[Java]
- 12. Jakarta EE 10 で API と実装が分離された Specification の一覧
- 13. Java silver向け 例題 継承 ポリモーフィズム 2
- 14. JavaでJettyをMavenプロジェクトに組み込む方法
- 15. [Google Tasks API(V1)] Javaでタスクリストから完了したタスクを全て削除する
- 16. Spring BootでTomcatデフォルトのエラーページをカスタマイズする
- 17. [Google Tasks API(V1)] Javaでタスクリストを作成・更新・削除する
- 18. [Google Tasks API(V1)] Javaでタスクを取得する
- 19. Minecraft Fabric APIの備忘録
- 20. 【Kotlin】OpenAPI Generatorでjavax.annotation.Generatedを生成しない or jakarta.annotation.Generatedに置換【Java】
[Google Tasks API(V1)] Javaでタスクリスト内のタスクの順序変更や親タスクを設定する
Google Tasks API V1(Java)を使用して、
タスクリスト内のタスクの順序変更や親タスクを設定する方法
についてご紹介します。なお、このAPIでは同一タスクリスト内のみ移動が可能です。
:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスクを移動](#1-タスクを移動)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[親タスクの指定](#2-親タスクの指定)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. タスクを移動
指定したタスクを指
【Android/Java】OkHTTPでDigest認証
## やりたいこと
AndroidアプリからDigest認証で通信したい
OkHTTPを使用することとしたらSingletonで作らないと、メモリを食いまくるようなので、それを意識する## Step1.実装方法
#### app¥build.gradle
~~~gradle
android {
:(略)
}
dependencies {
:(略)
implementation ‘com.squareup.okhttp3:okhttp:4.11.0’
implementation ‘io.github.rburgst:okhttp-digest:3.1.0’
}
~~~~#### AndroidManifest.xml
~~~xml
【Android/Java】Bluetoothペアリング機器の削除(任意のもの以外)
## やりたいこと
製品に付随しているBluetooth機器(例えば、AndroidTVに付随しているBluetoothリモコン)以外のペアリング機器を削除したい。
ネットカフェのPCなど、不特定多数の使用が想定される状況で、利用者がペアリングした機器を、利用終了後に削除したいのが目的での調査メモ## Step1.実装方法
#### AndroidManifest.xml
~~~xml
【Android/Java】アプリ間データ共有 その2(Android11) ## やりたいこと
アプリ間でデータの共有を行いたい
片方のアプリがプロセスKillされている状態でもデータの参照を行えるようにしたい以前、非推奨のSharedUserIDを使って実現したが、推奨、かつ簡単に行える実装(SystemProperties)をみつけたので備忘録
## Step1.SystemPropertiesとは
Androidのデバイス動作や設定を制御するキーと値のペアが格納されているもの。
#### ADBコマンド例
~~~cmd
# デバイスのモデル名をシステムプロパティから取得する
adb shell getprop ro.product.model
~~~~## Step2.実装方法
### SystemPropertiesへの書き込み
任意のキーを指定して、値を書き込む
~~~java
public void writeSystemProperties(String key, String val) {
try {
@SuppressLint(“PrivateApi”)
Class> SystemProp
[Google Tasks API(V1)] Javaでタスクを作成・更新・削除する
Google Tasks API V1(Java)を使用して、
タスクを作成・更新・削除する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスクを作成](#1-タスクを作成)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[タスクを上書き](#2-タスクを上書き)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[タスクを更新](#3-タスクを更新)|
||1|[スコープ](#31-スコープ)|
||2|[実行](#32-実行)|
|
Jacksonの JsonNode を使ってJSONの特定のキーを取得しようとしたとき、そのキーが存在しない場合は NullPointerException が発生します。
Jacksonを使用して、深い階層のJSONの値を変更するには、次の手順に従います。
– JSON文字列をJavaオブジェクトにデシリアライズします。
– 必要な値を変更します。
– 変更したJavaオブジェクトをJSON文字列にシリアライズします。Jacksonの JsonNode を使ってJSONの特定のキーを取得しようとしたとき、そのキーが存在しない場合は JNullPointerException が発生します。このため、キーが存在するかどうかを事前にチェックすることが重要です。
以下の例で rootNode.get(“a”).get(“b”) のようなコードを使用すると、もしキー “a” や “b” が存在しない場合に NullPointerException が発生します。したがって、キーが存在するかどうかをチェックするために has メソッドを使用することが推奨されます。
“`java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.
Spring bootの環境構築をしてみた(Intel Mac)
## 背景
“Java“の勉強がしたかったので、人気な“Spring boot“を触るために環境構築をしました。## 導入内容
IDEは“Eclipse“を使用することにしました。STS(Spring Tool Suite)というツールも主流のようですが、STSもEclipseをベースに作られたIDEになっていて、Eclipseにライブラリを入れることで同等の環境が作れるようです。
Eclipseを使用する理由は“Spring Boot“以外を触ることも考慮して、専用ツールを使うより慣れた時の汎用性が高いかもと思ったからです。## 導入手順
### 手順
1. Pleiadesをダウンロード・インストール
1. プラグイン: Spring Toolsをインストール
1. Javaをインストール
1. Lombokのインストール
1. プロジェクトを作成
1. Hello Worldを表示させる### Pleiadesをダウンロード・インストール
pleiadesは日本語化されたEclipseがインストールできて、OS・言語ごとにまとまったプラグインもダウンロ
JVM – PCレジスタ
Java Virtual Machine (JVM) の Runtime Data Area 構成要素の一つに「PCレジスタ」があります。([JVM – 全体構造](https://qiita.com/fastso/items/9bc3f4d861f729b4e54f)をご参考ください。)
![jvm_runtime_data_area.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/260307/6fa83edc-fcd7-7d9c-e716-6b5f1d3b4d44.png)
## JVM仕様のPCレジスタ定義
[The Java Virtual Machine Specification (Java SE 8 Edition)](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html)は次のようにPCレジスタを定義しています。
JVMは、一度に多くのスレッドを実行することができます。JVMの各スレッドは、独自の
ABC348A~Fの解答[Java]
## はじめに
今回は所用でコンテストに参加できなかったのでコンテスト後に解いたものを載せようと思います。なお、僕のライブラリに関しては[提出結果](https://atcoder.jp/contests/abc348/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご確認ください。
では、見ていきましょう。## A – Penalty Kick
問題文は[こちら](https://atcoder.jp/contests/abc348/tasks/abc348_a)`oox`が永遠に繰り返されている文字列の先頭から$N$文字目までを切り出せば答えが求められるので、雑に`oox`を$N$回繰り返した文字列を構築し、`substring`メソッドで答えを求めました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc
ABC347A~Eの解答[Java]
## はじめに
今回はコンテスト中にEまで解けたのでそれをそのまま載せようかなと思います。なお、僕のライブラリに関しては[提出結果](https://atcoder.jp/contests/abc347/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご確認ください。
では、見ていきましょう。## A – Divisible
問題文は[こちら](https://atcoder.jp/contests/abc347/tasks/abc347_a)$K$で割れる物を`ArrayList
`にaddしていって答えを構築しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWri
ABC346A~Fの解答[Java]
## はじめに
今回はコンテスト中にFまで解けたのでそれをそのまま載せようと思います。なお、僕のライブラリに関しては[提出結果](https://atcoder.jp/contests/abc346/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)をご確認ください。
では、見ていきましょう。## A – Adjacent Product
問題文は[こちら](https://atcoder.jp/contests/abc346/tasks/abc346_a)問題文の通りに実装しました。
“`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 SimpleWriter(Sy
Jakarta EE 10 で API と実装が分離された Specification の一覧
2022 年 9 月、[Jakarta EE 10](https://jakarta.ee/release/10/) がリリースされました。
The new era of #CloudNative #Java is here! Check out the #JakartaEE10 release page to discover new updates or features in over 20 component specifications: https://t.co/3KG28loVyz #JakartaEE #opensource pic.twitter.com/xGITL5KjUt
— Jakarta EE (@JakartaEE) September 22, 2022
Jakarta EE となって初めての機能追加リリースですが、アプリケーションサーバの EoL 都合で Java / Jakarta EE 8 からジャンプアップを迫られるケースがありそうです。たとえば Red Hat JBoss EAP の場合、Jakarta EE 8 互換の 7.x は Full support が 2023 年 12 月 31 日に終了しています。Maintenance support ends も 2025 年 6 月 30 日に控えており、最近 GA となった 8.x は Jakarta EE 10 互換ですから、デッドラインは近いです。[^1]
||GA|Full support|Maintenance support|ELS-1|ELS-2|
|:—-|:—-|:—-|:—-|:-
Java silver向け 例題 継承 ポリモーフィズム 2
次のコードの出力結果を答えてください
“`java
abstract class Fish {
String name = “SAKANA”;
abstract void setName(String na);
abstract String getName();
}class SABA extends Fish{
String name = “”;void setName(String na) {
name = na;
}
String getName() {
return name;
}
}public class TestFish {
public static void main(String[] args) {Fish fish1 = new SABA();
SABA fish2 = new SABA();fish1.setName(“Tarako”);
fish2.setName(“Maguro”);System.out.println(fish1.name);
System.out.pr
JavaでJettyをMavenプロジェクトに組み込む方法
開発中のWebアプリケーションを簡単にテストするためには、組み込みHTTPサーバーが非常に便利です。Jettyは、軽量で使いやすい組み込みHTTPサーバーおよびサーブレットコンテナの一つです。この記事では、MavenプロジェクトにJettyを組み込む方法をステップバイステップで説明します。
# 前提条件
このチュートリアルを始める前に、以下の条件を満たしていることを確認してください:
– JDK 17 以上がインストールされている
– Mavenがインストールされている# ステップ1: `pom.xml`の編集
プロジェクトが作成されたら、`pom.xml`ファイルを開いて、Jettyの依存関係とプラグインを追加します。
## 依存関係
Jettyサーバーを組み込むために、以下の依存関係を`
`セクションに追加します。 “`xml
jakarta.servlet
jakarta.servlet-api
<
[Google Tasks API(V1)] Javaでタスクリストから完了したタスクを全て削除する
Google Tasks API V1(Java)を使用して、
タスクリストから完了したタスクを全て削除する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスクを全て削除](#1-タスクを全て削除)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|## 1. タスクを全て削除
指定したタスクリスト内の完了したタスクを全て削除します。### 1.1. スコープ
このAPIを実行するには、以下のスコープを指定してください。
“`
TasksScopes.TASKS
“`
[⧉[Google Tasks API(V1)] JavaでTask
Spring BootでTomcatデフォルトのエラーページをカスタマイズする
# 環境
– JDK 21
– Spring Boot 3.2.4
– Embedded Tomcat 10.1.19# やりたいこと
Spring Bootにもエラーページの機能があります。具体的にはsrc/main/resources/templates直下にerror.htmlを作成すればOKです([公式ドキュメント](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.actuator.customize-whitelabel-error-page))。しかし、サーブレットフィルターのレベルで例外がスローされると、前述のエラーページではなくTomcatデフォルトのエラーページが表示されてしまいます。
![スクリーンショット 2024-04-11 16.11.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d9cbceb5-339a-fa33-e4d0-5be5cceea0
[Google Tasks API(V1)] Javaでタスクリストを作成・更新・削除する
Google Tasks API V1(Java)を使用して、
タスクリストを作成・更新・削除する方法
についてご紹介します。タスクリストはタイトルのみ更新できます。
Googleカレンダーからのタスク参照では、
画面左下にあるリストの情報が取得できます。
:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスクリストを作成](#1-タスクリストを作成)|
||1|[スコープ](#11-スコープ)|
||
[Google Tasks API(V1)] Javaでタスクを取得する
Google Tasks API V1(Java)を使用して、
タスクを取得する方法
についてご紹介します。:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Tasks API(V1)] JavaでTasks APIを使う](https://qiita.com/doran/items/8a3b7e24d9e0417a7f9a)
を参照ください。
:::|No||目次|
|—|—|—|
|1||[タスク一覧を取得](#1-タスク一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[タスクリストを取得](#2-タスクリストを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|## 1. タスク一覧を取得
指定したタスクリスト内のタスク一覧を取得します。### 1.1. スコープ
このAPIを実行
Minecraft Fabric APIの備忘録
Mod作成を始めたばかりなので
まだまだ知識は得ていない記事を書いた理由は “クリエイティブタブのグループ作成” で物凄く沼ったから。
今後いろいろと作るうえで覚えたことを追記する予定
## 開発環境
– minecraft – 1.20.4
– fabric – 0.96.11+1.20.4
– VSCode
– Java (Kotlinは理解不足なので使わない)バージョン等は今後変わる可能性あり
## プロジェクトの作成
– [テンプレートの作成](https://fabricmc.net/develop/template/ “fabricmc template”)
– grableの読み込みが終わった後コンソールで
`gradlew vscode` の実行gitからzipでダウンロードする方だとクラス名やディレクトリ構成の変更が面倒だったので、上記テンプレートからダウンロードする方が楽
## アイテムの追加
“`java:ModName.java
public static final Item CUSTOM_ITEM = Registry.
【Kotlin】OpenAPI Generatorでjavax.annotation.Generatedを生成しない or jakarta.annotation.Generatedに置換【Java】
この記事は同僚の発見した知見を代理でまとめたものです。
https://qiita.com/organizations/justincase
# 文脈
`OpenAPI Generator`で生成されるファイルに含まれる`javax.annotation.Generated`アノテーションのせいで`Java 17`移行時にコンパイルエラーが発生しました。
この問題は最新バージョンでは恐らく解決されていますが、自分たちのチームでは独自パッチを当てたバージョンを運用している関係で、バージョンアップでの解決はできませんでした。そこで、なんとかバージョンを変えないままで、`javax.annotation.Generated`を生成しない、または`jakarta.annotation.Generated`に置換することを試みました。
自分たちのチームでは`spring-kotlin`のジェネレータを使っていますが、やり方的に言語を問わず応用可能と思われます。
また、後述するテンプレートのファイル名が同じだったので、`Java`に対してはそのまま適用可能だと思っています(確認はして