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

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

[Google Photos Library API] JavaでGoogleフォトのメディアアイテム(写真や動画)を取得する

Google Docs API V1(Java)を使用して、
Googleフォトのメディアアイテム(写真や動画)を取得する方法
についてご紹介します。

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

|No||目次|
|—|—|—|
|1||[メディアアイテム一覧を取得](#1-メディアアイテム一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|
|2||[メディアアイテムを取得](#2-メディアアイテムを取得)|
||1|[スコープ](#21-スコープ)|
||2|[実行](#22-実行)|
||3|[レスポンスの内容](#23-レスポンスの内容)|
|3||[複数のメディ

元記事を表示

JavaからKotlinの引数なしの関数を呼んだら引数が足りないと怒られた(suspend fun, Continuation, coroutine)

## はじめに

こういうエラーのことです。
“`
‘関数名(kotlin.coroutines.Continuation? super 戻り値の型>)’ in ‘ファイル名’ cannot be applied to ‘()’
“`

具体例というとこうです。
“`
‘getNumber(kotlin.coroutines.Continuation? super java.lang.Integer>)’ in ‘com.example.myapplication.KotlinLibrary’ cannot be applied to ‘()’
“`

分かる人はもしかしたらタイトルの括弧のキーワードで既に察したかもしれませんが、
なにせKotlinに関する知識が0で、キーワードに辿り着くまで時間がかかったもので、この記事が誰かの手引きになるといいと思います。
また、キーワードが分かってからもつまずきました。最終的に選んだ解決策を共有できればと思います。

## 環境
Android Studio Hedgehog | 2023.1.1 Patch 2

JDK: 11
com

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバムを取得する

Google Docs API V1(Java)を使用して、
Googleフォトのアルバムを取得する方法
についてご紹介します。

アルバムはGoogleフォトアプリのアルバムタブから確認することができます。

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

|No||目次|
|—|—|—|
|1||[アルバム一覧を取得](#1-アルバム一覧を取得)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#1

元記事を表示

String.formatでjson文字列作成

“`java
public class Main {
public static void main(String[] args) throws Exception {
// Sample data
String name = “John”;
int age = 30;
String city = “New York”;

// Format JSON string using String.format
String jsonString = String.format(“{\”name\”:\”%s\”, \”age\”:%d, \”city\”:\”%s\”}”, name, age, city);

// Print formatted JSON string
System.out.println(jsonString);
}
}
“`

元記事を表示

指定されたURLパターン の正規表現

“`java
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) {
String urlString = “/api/v1/2022.2/xxx”;

// 正規表現パターン
String regexPattern = “^/api/v1/\\d{4}\\.\\d{1}/\\w+$”;

Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(urlString);

if (matcher.matches()) {
System.out.println(“URLパターンが一致しました。”);

元記事を表示

java。urlからドメインとドメイン以降の別に取り出す

“`java
import java.net.MalformedURLException;
import java.net.URL;

public class Main {
public static void main(String[] args) {
String urlString = “https://www.example.com/path/to/resource”;

try {
URL url = new URL(urlString);

// ドメインを取得する
String domain = url.getHost();
System.out.println(“ドメイン: ” + domain);

// ドメイン以降の部分を取得する
String path = url.getPath();
Sy

元記事を表示

[Google Photos Library API(V1)] JavaでPhotos Library APIを使う

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

***Photos Library APIとは***
Googleが提供しているAPIで、Googleフォトに関する操作ができます。

Google Photos Library APIの利用料金は無料です。
ただし、1日あたりのリクエスト数の上限があります。
|対象|制限|
|—|—|
|通常のリクエスト|10,000 リクエスト/日|
|メディアバイトにアクセスするリクエスト|75,000 リクエスト/日|

詳細は[公式ドキュメント](https://developers.google.com/photos/library/guides/api-limits-quotas?hl=ja)を参照ください。

**APIを使う上で気をつけて欲しい**のですが、
基本的に「Photos Library API」を使っての設定や更新の処理は、
同じGCP認証のAPIで実行して作成したアルバムやメディアアイテム(写真や動画)
に対してのみにな

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーション内のページのサムネイル画像を取得する

Google Slides API V1(Java)を使用して、
プレゼンテーション内のページのサムネイル画像を取得する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[サムネイル画像を取得](#1-サムネイル画像を取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. サムネイル画像を取得
プレゼンテーション内のページのサムネイル画像を取得します。

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

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーションを作成・更新・削除する

Google Slides API V1(Java)を使用して、
プレゼンテーションを作成・更新・削除する方法
についてご紹介します。

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

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

元記事を表示

【Java基本編】条件文(if文・switch文)、繰り返し処理(while文・for文・continue)

こんばんは!
この1週間でJavaの条件文と繰り返し処理を学んだので簡単にまとめてみたいと思います!

# if文
基本形は以下のようになっており、ifのあとの()に条件式などを入れ、それがtrueであれば出力、そうでなければelse ifの条件式をみてtrueであれば出力、そうでなければelse以下を出力するというようになっています。else ifは条件がある限り増やせます。

“`java
if(条件1){
System.out.println(条件1がtrueのときの出力内容);
}else if(条件2){
System.out.println(条件1がfalseかつ条件2がtrueのときの出力内容);
}else{
System.out.println(条件1・2のどちらもfalseのときの出力内容);
}
“`

例えば、テストの点数で評価を分けたいときはこのようになります。
この場合の出力内容は『優』です。
“`java
int score = 81;
if(score >= 90){
System.out.println(“秀”);

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーションの情報を取得する

Google Slides API V1(Java)を使用して、
プレゼンテーションの情報を取得する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[プレゼンテーションを取得](#1-プレゼンテーションを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|

## 1. プレゼンテーションを取得
プレゼンテーションの情報を取得します。

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

元記事を表示

Eclipseの動的プロジェクトの作成について

Eclipseで開発の勉強をしていくうちに、動的Webプロジェクトの開発でハマってしまいましたので備忘録として記述します。
立ち上げ方は調べると出てくるのですが、どれもEclipseのバージョンが古くてよく理解できなかったんですよね。
最新のバージョンでは表示や進め方が少し異なるようです。
この記事では、Tomcat v9.0をインストールした前提でお話を進めます。

まず動的プロジェクトの作成からです。
ファイル→新規→その他 でウィザードの選択画面に入りますので、「動的Webプロジェクト」を選択します。
![スクリーンショット 2024-04-15 142840.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3697057/9bddff7e-270e-ab37-80a2-a681f67be9b0.png)

その後プロジェクト名のみ記入します。
それ以外は特に何もせず、「次へ」をクリックします。
![スクリーンショット 2024-04-15 145253.png](https://qiita-ima

元記事を表示

【コツコツ学習】インターフェースと抽象クラスの使い分け

## オブジェクト指向プログラミングの以下の3つの主要な機能

### 1.カプセル化(Encapsulation)
データとそれに関連する操作を一つのオブジェクトにまとめ、外部からの直接のアクセスを制御します。オブジェクトは自身の内部状態を保持し、外部からは公開されたインターフェースを通じてアクセスされます。

### 2.継承(Inheritance)
クラス間の階層関係を作成し、親クラス(スーパークラス)の属性やメソッドを子クラス(サブクラス)に引き継ぎます。これにより、コードの再利用性と階層的な関係の表現が可能となります。

### 3.ポリモーフィズム(Polymorphism)
同じ型やインターフェースを持つオブジェクトが、異なる形で振る舞うことを意味します。異なるクラスが同じメソッド名を持ち、そのメソッドを使うコードがクラスの実際のタイプによらずに書けるため、柔軟性や拡張性が向上します。

## 個人的に分からなくなったのが以下
– 継承
– ポリモーフィズム(インターフェースの実装)

## 継承とは
過去に利用したクラスを流用して新しいクラスを簡単に造れる機能の

元記事を表示

[Google Slides API(V1)] Javaでプレゼンテーション内のページ情報を取得する

Google Slides API V1(Java)を使用して、
プレゼンテーション内のページ情報を取得する方法
についてご紹介します。

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

|No|||目次|
|—|—|—|—|
|1|||[ページを取得](#1-ページを取得)|
||1||[スコープ](#11-スコープ)|
||2||[実行](#12-実行)|
||3||[レスポンスの内容](#13-レスポンスの内容)|
|||1|[シェイプ](#131-シェイプ)|
|||2|[ライン](#132-ライン)|
|||3|[画像](#133-画像)|
|||4|[動画](#134-動画)|
|||5|[テーブル](#135-テーブル)|
|||6|[グラフ](#136-グラフ)|
|||7|[テキスト](

元記事を表示

java メソッド 配列

引数に配列を用いる、
値渡しと参照渡しがるというが厳密には参照の値渡しというみたい:sweat_smile:
#### 違い
引数の渡し方の違い

## 値渡し(一部訂正)

“`
public class Sample {
public static void main(String[] args) {
int num = 5;
samlpe(num);
System.out.println(num);

}

public static void sample(int num) {
int += 5;
System.out.println(num);
}
}

出力結果
10
5
“`

変数の値を直接コピーするので変数は変化しない
呼び出し元のアドレスの情報のみが渡される(値そのものが渡される)

## 参照の値渡し

“`
public class Sample {
public static void main(String[] args) {
int[] num = {5};
sample(num);
S

元記事を表示

JavaGoldを未経験から3ヶ月で合格した時を振り返る

前回、Java Silverの取得した過去を振り返りましたが、今回は、続けて受験したJava SE 8 Goldを取得した時の勉強方法を振り返えろうと思います。

# 当時のスペック
– progateを少し触ったことがある程度
– 前職時代の時
– JavaSilverをとって間もない状態

なので、JavaSilverの勉強で得た知見はある程度です。

# 勉強期間

– 開始日:2019年10月

– 試験日:2020年2月1日

約4ヶ月で、全くの実務経験ない状態から合格することができました。

# 参考書

– 徹底攻略 Java SE 8 Gold 問題集
– 黒本とよく言われるものです。(Goldはぶっちゃけ、これだけでは厳しいです。)
– 現時点の最新だと、[徹底攻略Java SE 11 Gold問題集[1Z0-816]対応](https://hb.afl.rakuten.co.jp/ichiba/1d5aa798.217b1dd2.1d5aa799.01b58bc8/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook

元記事を表示

古い azure-storage-blob を利用した Spring Boot のプロジェクトがビルドできなくなった問題への対応メモ

# 背景
– 数年前の azure-storage-blob を利用している Spring Boot プロジェクトをビルドする必要があった
– もろもろハマったのでメモとして残しておく

# 対応一覧
## azure-storage-blob 12.0.0 が参照できなくなった
– mavenCentral から参照できなくなった
– バージョンを上げる
– 単純に上げるだけだと他ライブラリのバージョンと競合するので合わせて対応していく
– azure-sdk-bom を利用してバージョンを上げる
– https://learn.microsoft.com/ja-jp/azure/developer/java/sdk/get-started-gradle
“`groovy:build.gradle
implementation platform(‘com.azure:azure-sdk-bom:1.2.22’)
implementation ‘com.azure:azure-storage-blob’
“`
– 他ライブラリは別途調

元記事を表示

Java ZonedDateTimeの注意点

Javaランタイムには [IANA Time Zone Database](https://www.iana.org/time-zones) (以下tzdata)が組み込まれており、標準APIの`ZonedDateTime` を使えば、tzdataを用いたタイムゾーンの取り扱いが便利にできる。

タイムゾーンは相応に複雑なものであり、気軽に`ZonedDateTime`を使うと怪我をする。[java.timeパッケージJavaDocのDesign notes](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html#package.description)でも、可能であれば `ZonedDateTime`の使用を避けて、`LocalDateTime` 等のタイムゾーンの複雑さを回避できるオブジェクトの使用を推奨している。

しかし、サマータイムや複数の地域ベースタイムゾーンを扱わなければならないなど、`ZonedDateTime`を避けられないケースも多々ある。本稿では`ZonedDateTime

元記事を表示

[Google Slides API(V1)] JavaでSlides APIを使う

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

***Google Slides APIとは***
Googleが提供しているAPIで、Googleスライドに関する操作ができます。

Google Slides APIの利用料金は無料です。
ただし下記の利用制限があります。
|リクエスト|単位|1分単位の上限|
|—|—|—|
|読み取りリクエスト|プロジェクト単位|3000回/分|
||ユーザー単位|600回/分|
|書き込みリクエスト|プロジェクト単位|600回/分|
||ユーザー単位|60回/分|
|サムネイル取得リクエスト|プロジェクト単位|300回/分|
||ユーザー単位|60回/分|

詳細は[公式ドキュメント](https://developers.google.com/slides/api/limits?hl=ja)を参照ください。

|No|||目次|
|—|—|—|—|
|1|||[Google Slides APIを使用するための準備](#1-google-slides-apiを使用するため

元記事を表示

JavaのPriorityQueueではまった(間違った順序で要素を返すように見えた)話

# 結論:優先度が適用された順序で取得するには、poll()やpeek()を使いましょう

それ以外のメソッドを使うと、順序が保証されません。
* iterator() →×
* toArray() →×
* toString() →×

* poll() →○
* peek() →○

参考:[https://docs.oracle.com/javase/jp/8/docs/api/java/util/PriorityQueue.html](https://docs.oracle.com/javase/jp/8/docs/api/java/util/PriorityQueue.html)

## 悪い例
“`java:bad_example1.java
import java.util.*;

int[] data = new int[]{10,1,1000,100,10000};
PriorityQueue pq = new PriorityQueue<>();
for(int i = 0; i < data.length; i++) { pq.add(d

元記事を表示

OTHERカテゴリの最新記事