- 0.1. [Google Sheets API] Javaでスプレットシートの情報を取得する
- 0.2. 【初めてのJava】コードリーディングしてみた(スレッド / タイマー)
- 0.3. 自分でインストールしたJavaバージョンをSDKMANで管理する方法
- 0.4. java static イニシャライザとstaticフィールド
- 0.5. 自動ミュート機能の実装:Discordボット開発【その④】
- 0.6. Eclipseセットアップ(お勧めプラン)
- 0.7. eclipse Intellij 開発のショートカット
- 0.8. 検証、BindingResult、BeanValidation
- 0.9. java.lang.IllegalStateException: Unbound values in registryエラーで悩まされた
- 0.10. ブラックジャック実装
- 0.11. 【Java Gold】(1Z0-816-JPN) 合格体験記
- 0.12. NullPointerException vs IllegalArgumentException
- 0.13. Float型の標準出力の有効数字のデフォルトはなぜ6桁なのか
- 0.14. Javaで商品購入プログラムを作ってみた
- 0.15. JacksonでJSONをオブジェクトに変換する
- 0.16. 自作の JVMライブラリをJitPackで簡単に公開する方法
- 0.17. VBA学習備忘録③ Python等の他言語から見たVBAの独自な文化&方言①
- 1. そもそもVBA(Visual Basic for Application)とは
- 2. これまでPHP、Laravel、Python(と少しだけJava)を少し勉強してきた中であまり聞いたことのないような謎方言や謎文化が時々出てくるので集めてみた~その壱~
[Google Sheets API] Javaでスプレットシートの情報を取得する
Google Sheets API v4(Java)を使用して、スプレットシートの情報を取得する方法
についてご紹介します。セルの値を含め、スプレットシートが持つさまざまな情報を取得する方法について
説明したいと思います。スプレットシートの情報を取得する際には、取得したい情報を指定します。
この指定がない場合、必要でない情報(例えば全セルのサイズ等)も取得してしまうため、
レスポンスが膨大なデータになってしまいます。
そのため、リクエストに対する応答も遅くなってしまいます。***スプレットシートから特定の情報を取得したいけど、
どのような情報があるかわからない とか
ドキュメントは探してみたけど英語しかない とか
取得したい情報の指定がわからない など
の方が参考できるようにこの記事を書きました。
プログラムの実装方法を参考にするというよりは、
辞書としての意味合いで記事を参照していただけたら幸いです。***## 0. プログラムの実行
プログラム自体はすごくシンプルです。#### googleライブラリの読み込み
Google Sheets APIを使用する
【初めてのJava】コードリーディングしてみた(スレッド / タイマー)
## はじめに
Java習得の修行の一環として、Javaのタイマー機能(util.Timer)のソースコードを読み、シーケンス図にしてみました。https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/util/Timer.java
なお、例外フローと思われるものは反映させていません
また、シーケンス図として正確ではない箇所もあるかと思います。## シーケンス図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3669288/55c322c3-946d-ecb5-1420-c5161332d47e.png)## 感想
タイマーの使い方もそうですが、排他制御やスレッドの書き方など 色々と勉強になりました。JavaのTimer機能は使ったことがありません。
そこであえて使い方を調べずに、またソース中のコメントもあまり読まずに
ソースコードだけで何をしようとしているのかをつかも
自分でインストールしたJavaバージョンをSDKMANで管理する方法
# 概要
普段sdkmanでJavaを管理しているが、`sdk list java` で検索した中に自分の入れたいバージョンがない場合の対処方法の記事です。
# やり方
適当に必要なJDKをインストールします。どんなやり方でもいいです。
ここでは、OpenJDKのサイトから取ってきます。
以下のサイトから、ダウンロードします。 利用したいバージョンを環境に合わせて取得すれば良いです。自分はシリコンMacなので、`Mac/AArch64`を使います。
https://jdk.java.net/archive/今回は、19.0.1を使います。取得したtargzを解凍し、適当な場所に置きます。
“`shell
$ sudo mv ~/Downloads/jdk-19.0.1.jdk /Library/Java/JavaVirtualMachines/
“`次は、インストールしたsdkをSDKMANに認識させます。これだけです。ポイントは、`19.0.1-openjdk` のようにバージョンを先に書くことです。
“`shell
$ sdk install java
java static イニシャライザとstaticフィールド
## java static イニシャライザ
静的初期化ブロックは、括弧{}で囲まれ、前にキーワードstaticが付いているコードブロックです。
static イニシャライザは、クラスロードされる際に、実行されるブロックです。
## staticフィールド
staticフィールドはプログラムが実行される時に生成され、すべてのインスタンスが共有します。
## 実装
“`java
public class StaticTest {
public static void main(String[] args) {
System.out.println(AAA.m);
}
}class AAA {
static {
m = 300;
}
static int m = 100;
}
“`
## 実装結果
“`
100Process finished with exit code 0
“`
自動ミュート機能の実装:Discordボット開発【その④】
こんにちは。この記事は[**音声認識機能の導入:Discordボット開発【その③】**](https://qiita.com/blue_islands/items/5015b9d980dca22808ef)の続きの記事になります。
# 1. Discord Botの音声再生管理:自動ミュート機能の実装
Discordサーバーで音楽を再生する際、背景音楽としてのみ使用したい場合があります。そんな時、音楽再生中にユーザーが話すことを防ぐため、ボイスチャンネル内のメンバーを自動的にミュートし、再生が終了したらミュートを解除する機能が役立ちます。本記事では、Javaを使用してDiscord Botにこの機能を実装する方法を紹介します。
# 2. 使用技術
– **Java**: 実装言語
– **JDA (Java Discord API)**: Discord Bot開発用のライブラリ
– **LavaPlayer**: Java用の高機能なオーディオライブラリ# 3. クラスの概要
`TrackScheduler`クラスは、`AudioEventAdapter`を継承しており
Eclipseセットアップ(お勧めプラン)
個人的にJavaで eclipse 使いなと思ったときのメモ。
やっぱり本格的にJavaやるなら VSCode で Java より断然いいよね。
1. **eclipse 本体のダウンロード(eclipse本家から)**
https://www.eclipse.org/downloads/
Javaファイル編集の場合(おすすめ)
→ [Eclipse IDE for Java Developers]をダウンロード
サーブレットも作る場合
→ [Eclipse IDE for Enterprise Java and Web Developers]をダウンロード:::note info
Eclipse IDE for Enterprise Java and Web Developersを入れると、プロジェクトの新規作成で、動的ウェブアプリケーションを選んで、Servlet APIを別途用意しなくてもコーディングができたりする。
:::
2. **eclipse 日本語化**
Pleiadesプラグインをダウンロード
https:
eclipse Intellij 開発のショートカット
#### 元の場所に戻る・進む
– Eclipse
Alt + ← または →
– Intellij
Alt + ← または →
#### 選択した行を上/下に移動
– Eclipse
[Alt] + [↑/↓]
– Intellij
Alt + Shift + ↑/↓
Ctrl + Shift + ↑/↓
#### 選択した行をコピー
– Eclipse
Ctrl + Alt + ↑ or ↓
– Intellij
Ctrl + D
#### 選択した行を消去
– Eclipse
[Ctrl] + [D]
– Intellij
Ctrl + Y
#### ファイル検索
– Eclipse
Ctrl + Shift + R
– Intellij
Shift 2回連打
#### 型の検索ボックス表示
– Eclipse
Ctrl + Shift + T
– Intellij
Shift 2回連打
#### 行のコメントアウト
– Eclipse
Ctrl + /
– Intellij
Ctrl + /
#### 複数行のコメントアウト
– Eclipse
Ctrl + Shift + /
検証、BindingResult、BeanValidation
> – ウェブサービスはフォーム入力時にエラーが発生すると、最初からフォームを再入力するようにしてはならず、顧客が入力したデータを維持した状態でどんなエラーが発生したのか親切に知らせなければならない。
> – これに関してスプリングでは、Binding ResultとBean Validationを提供し、便利に検証処理を行うようにする。検証の種類は3つがある。
| 検証の種類 | 説明 |
| — | — |
| 1.タイプ検証|タイプによる検証
ex.数字入力をすべきところに文字を入力していないか |
| 2. フィールド検証 | フィールドによる検証
ex.商品名:必須、空白X
価格:1000以上100万以下
数量: 最大 9999 |
| 3.特定フィールドの囲を超える検証|複合的な条件を考慮して検証
ex.価格*数量の合計が10,000ウォン以上なのか|# BindingResult
– 検証する@ModelAttribute のすぐ後ろに記す。
– Binding Resultを使用すると、1.タイプ検証でエ
java.lang.IllegalStateException: Unbound values in registryエラーで悩まされた
# エラー内容
:::note alert
java.lang.IllegalStateException: Unbound values in registry ResourceKey …
:::
というエラーの対処に悩まされた。# 本文だよ
ごたくはいいからはよ解決方法見せろよって方は
[解決チャプター](#解決)まで飛んでください[TurtyWurty様](https://www.youtube.com/@TurtyWurty)の動画([1.20 Minecraft Forge Modding Tutorial – Ore Generation](https://www.youtube.com/watch?v=aOAavvVzHI8))を参考にして
鉱石生成のコードを書いたのだが
先程の[エラー内容](#エラー内容)に記述した通りエラーが出た。
周りを見渡しても英語情報だし…
しょうがないのでTurtyWurty様のGithubを見てみた。
configured_feature…placed_feature。
アヤシイところはなかった。
軽くggって出てきたs
ブラックジャック実装
ブラックジャックをやったことがないから、そもそもルールをしらない…
掛け金の上限は設定してなくて、プレイヤー側が負けても損失はでない
優しいブラックジャックにしました。“`java
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println(“賭けますか? yes:y or no:n”);
String select = scan.next();int bet =0;
if(“y”.equals(select)) {
System.out.println(“賭け額を入力してください:”);
int betNum = scan.nextInt();
bet = betNum;}
System.out.println(“ゲームスタート”);
List
deck = new ArrayList<>(52); shuffleDeck(deck);
【Java Gold】(1Z0-816-JPN) 合格体験記
## はじめに
Java Goldに合格したので、合格までの過程を記載します。
(取得してから約3か月経ちましたが…)Oracle社が提供しているJava Gold以外のJava資格の合格の記事も書いています。↓
https://qiita.com/tt8811/items/2c01165cb885967bccb8
https://qiita.com/tt8811/items/141858ab7acfe88baa8d
## スペック
* Java Gold合格の約2か月前にJava Silverを取得
* Java開発経験なし## 使用参考書
* 徹底攻略Java SE 11 Gold問題集[1Z0-816]対応(今回も黒本メイン)
→Goldは出題範囲が広いため、黒本だけでは少し物足りない感じだった
NullPointerException vs IllegalArgumentException
# 引数の値が null だったときに、投げる例外はどちらが正しいのか?
:::note
まとめ
結論 -> どちらでも問題ない
JavaDocに記載されているとおり、どちらの状況も当てはまるから
> **IllegalArgumentException**
> 不正な引数、または不適切な引数をメソッドに渡したことを示すためにスローされます。> **NullPointerException**
> オブジェクトが必要な場合に、アプリケーションがnullを使おうとするとスローされます。
:::## よく見かけるコードたちの例
“`java
public void setterMethod(Object par) {
if(par == null) {
throw new NullPointerException(“par is null”);
}
// do something…
}
“`
“`java
public void setterMethod(Object par) {
if(par == null) {
Float型の標準出力の有効数字のデフォルトはなぜ6桁なのか
—
Float型の標準出力の有効数字のデフォルトはなぜ6桁なのか
—**風船ガム**
イチゴ味の風船ガムを食べてました。
くちゃくちゃ味わい、ふくらます。
口に広がる甘酢っぱさ。
フルーティーが鼻をつつく。何回かそれを繰り返していると ふと
どれくらい大きくなるのだろうと
思いました。おもいっきり息を吐き
風船ガムをふくらませました。ドンドン大きくなるガム。
破けることなく大きくなり
ついに私は空を飛びました。ああ、でも残念なことに
私はずっと上を向いたまま。下に広がる素敵な景色は見れません。
「私はどこまで浮かびつづけるのでしょうか」
浮かびながら空に聞くのでした。
**目次**
[1. そもそもFloat型って何?](#1-そもそもfloat型って何)
[2. Float型の標準出力の例](#2-float型の標準出力の例)
[3. なぜデフォルトは6桁なのか](#3-なぜデフォルトは6桁なのか)
[4. おわりに](#4-おわり
Javaで商品購入プログラムを作ってみた
“`java
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタSystem.out.println(“注文”);
Scanner scan = new Scanner(System.in);
String select = scan.next();Map
list = new HashMap (); list.put(“いちごのケーキ”, 100);
list.put(“モンブラン”, 200);
list.put(“チョコケーキ”, 333);
list.put(“タルト”, 234);
list.put(“チーズケーキ”, 123);int total = 0;
switch(select) {
case “いちごのケーキ”:
case “モンブラン”:
case “チョコケーキ”:
case “タルト”:
case “チーズケーキ”:
JacksonでJSONをオブジェクトに変換する
JacksonはJavaでJSONとオブジェクトを変換する場合などに使用されるライブラリです。
Jacksonを使うと簡単にJSONを扱うことができます。### JSON文字列をオブジェクトに変換する
下記のJSON文字列をオブジェクトに変換したいとします。
“`java:JSON
String json = “{” +
“\”message\”: null,” +
“\”results\”: [” +
” {\”address1\”: \”北海道\”,” +
” \”address2\”: \”美唄市\”,” +
” \”address3\”: \”上美唄町協和\”,” +
” \”kana1\”: \”ホッカイドウ\”,” +
” \”kana2\”: \”ビバイシ\”,” +
” \”kana
自作の JVMライブラリをJitPackで簡単に公開する方法
# はじめに
JVMライブラリの開発者にとって、[JitPack](https://jitpack.io/)はプロジェクトの公開を簡単かつ迅速に行うための重要なツールです。この記事では、Mavenを用いてJitPackでライブラリを効率的に公開する具体的な手順を紹介します。# JitPackってなに?
[JitPack](https://jitpack.io/)は、GitHubなどのGitリポジトリから直接JVMやAndroidライブラリをビルドし、公開できるサービスです。このサービスを利用することで、ライブラリを世界中の開発者に簡単に提供することが可能となります。https://jitpack.io/
# JitPackを使ってJVMライブラリを公開してみる
JitPackでライブラリを公開するためには、いくつかの重要な手順を踏む必要があります。## 手順1: JitPack Mavenリポジトリの追加
プロジェクトの`pom.xml`にJitPackのリポジトリを追加し、JitPackを通じたビルドとアクセスが可能になるように設定します。“`xml:pom.xm
VBA学習備忘録③ Python等の他言語から見たVBAの独自な文化&方言①
そもそもVBA(Visual Basic for Application)とは
https://qiita.com/thinking-weed/items/b322d1e34b888aa3ca22
これまでPHP、Laravel、Python(と少しだけJava)を少し勉強してきた中であまり聞いたことのないような謎方言や謎文化が時々出てくるので集めてみた~その壱~
※以下の文にあるコードは、基本Subプロシージャ(指定した操作を実行する基本的なマクロ)に用いるものであり、冒頭のSub マクロ名()と末尾のEnd Subは省略してあります。
①「解放」=「削除」(+「エクスポート」)
details
上記Qiitaの通り、VBE(VBAのエディター)を開いて、**挿入** ⇒「~モジュール」を開くと
以下のような画面が出てきますが、例えば無駄なモジュール追加しちゃった場合、
最初削除どこにあるん??(´。`)??ってなりました。![module_release.
[Java][JavaSilver] Interface,abstractクラスの2つを使った時の動き
# 記事作成の経緯
JavaSilverの勉強をしていた際に、`Interface`, `Abstractクラス`を使った継承関係の問題につまづいた。。
内容整理&理解のため記事作成# 読む方の対象
Java Silver学習中の方
Java始めたての方# そもそもInterfaceとabstractクラスって何
本記事の主題とは少し離れるため詳細には記載しない。
自分は超ざっくり以下のように理解した。**Interface** = 抽象メソッドのみ提供する
**abstractクラス** = 抽象メソッド**と実装**を提供するクラス自分は以下のサイトが参考になったため共有として貼っておきます。
– [抽象クラスとインターフェース 概念の違いについて【オブジェクト指向】
](https://4engineer.net/oo/abstract-vs-interface/)
– [KAB-studio 7. ポリモーフィズム!!](http://www.kab-studio.biz/Programing/OOPinJava/07/01.html)(7.ポリモーフィズム!!
[Android]TextWatcherでオートセーブを実装する
今回実装してみるのはiPhoneのリマインダーのようなアプリケーションです。TextWatcherを使用することで簡単に実装できます。
初学者なのでアドバイスあれば是非お願いします!!
## 今回実装したもの
![ezgif-4-6a062b776c.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3686052/94a17c5e-fb4d-46a1-1270-bd0455206372.gif)上記のgifの通りEditTextが表示され入力するごとにDBに保存処理がされます。
今回の記事では省略していますがラジオボタンを押すと本家のように2秒後に削除されます。下にソースコードのリンク貼ってあるので気になる方はチェックして見て下さい!#### 全体のソースコードはこちら
## TextWatcherとは
簡単にいうとテキストが変更を監視するインターフェースです。## 実装方法
Edit
[androidアプリ]AWSのAPIgateway + Cognito Userpoolを使用してみる
## はじめに
Cognito認証を使用した各種サービスへのアクセスに非常に困惑したので備忘録として情報を記載する
特にAWSMobileClientの仕様が理解できておらず困惑したので書き留めておく.## 何をするか
android環境で,APIgatewayに3つの状況でリクエストを送信する.
– 1.認証・認可なしの場合
– [前回の記事はこちら](https://qiita.com/sanjolin_chun/items/832fb1c6edfb3ea10ed5)
– 2.AWS cognito userpoolを使用する
– 3.AWS cognito userpool + idpoolを使用する
– 未出稿本記事では,2のcognito userpoolを使用する場合について解説する.
前提条件として,1の認証・認可なしの場合のセットアップが完了している前提で記述する.## 環境
各種jdkのバージョンや,ライブラリのバージョンは前回の記事と同じ.minSdkVersion 28
targetSdkVersion 34
sourceCompa