JAVA関連のことを調べてみた2022年05月03日

JAVA関連のことを調べてみた2022年05月03日

Android トグルスイッチの実装(java)

# はじめに
こんばんわ、Hideです。
javaに関する記事を投稿しています。

今回はAndroid Studioでトグルスイッチを実装する方法を書いていきます。

# トグルスイッチとは
ユーザが2つの状態(On/Off)を交互に切り替えることのできるUIです。
![toggle_switch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2652946/2e45166e-17eb-9467-064f-5847636c3bff.png)

# レイアウトの作成
まず、トグルスイッチのレイアウトを作成する
(※スイッチの初期値をONに設定している)
“`/res/layout/activity.xml
auカブコム証券のkabuステーションPUSH APIのサンプル

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

[Docker][Java] Java プロセスのコンテナで jmap/jstack が採れない

前の記事で Java プロセスの docker コンテナの jstat が採れない問題を修正したら、今まで動いていた jmap/jstack が採れなくなった。。

[Docker][Java] Java プロセスのコンテナで jstat が採れない
https://qiita.com/batatch/items/a5d76b420702cc6322b5

以下のようなエラーになり、jmap/jstack の結果がアタッチ対象の Java プロセスの標準出力に出てしまう。

“`
Exception in thread “main” com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/1/root/tmp/.java_pid1: target process 1 doesn’t respond within 10500ms or HotSpot VM not loaded
at jdk.attach/sun.tools.attach.VirtualMa

元記事を表示

SpringBatchのItemReaderでDBデータを取得する方法(MyBatis)

SpringBatchのChunkモデルを使う場合、データベースからデータを取得し、chunkサイズごとにデータを処理する方法を紹介しようと思います。

# サンプルソース
“`Configuration.java
@Autowired
SqlSessionFactory sqlSessionFactory;

@Bean
public Step chunk() {
return stepBuilderFactory.get(“chunk”). chunk(100)
.reader(this.myBatisReader())
.processor(this.Processor)
.writer(this.Writer)
.build();
}

// MyBatisPagingItemReaderを使ってデータをページ分けて取得
@Bean
public MyBatisPagingItemReader myBatisRead

元記事を表示

SpringBatchのJunitテストの書き方(Step構成がJavaで書いた場合)

SpringBatchの公式ドキュメントを参考して、JunitでSpringBatchのテストをやって見たが、Step構成ファイルがjavaファイルで書いた場合、「@ContextConfiguration」でStep構成ファイルを指定するとエラーがいろいろ出ました。
解決方法を調べたが、Step構成ファイルの作成がいくつ注意点があることがわかりました。

## サンプルコード

“`Configuration.java
@Configuration
@EnableBatchProcessing
//注意点1:@ComponentScanを追加し、全プロジェクトのBeanをスキャンすること
@ComponentScan(“com.example.パス”)
public class Configuration{

@Autowired
private JobBuilderFactory jobBuilderFactory;

@Autowired
private StepBuilderFactory stepBuilderFactory;

@Autowired

元記事を表示

Java 配列についてまとめる

備忘録
## ArrayList
### add
– 配列ver

“`java
// 生成時要素数は3
int[] nums = new int[3];
nums[0] = 3;
nums[1] = 6;
nums[2] = 1;

for(int value : nums) {
System.out.println(value);
}
“`
– ArrayList

“`java
// 生成時中身は空
List list = new ArrayList<>();
list.add(3);
list.add(6);
list.add(1);

for (int value : list) {
System.out.println(value);
}
“`

### get
– 配列

“`java
int num = nums[1];
“`

– arraylist

“`java
int num = list.get(1);
“`

### remove
– 配列
機能なし

– arraylist

“`java
li

元記事を表示

Twitter APIを活用して競馬予想をしてみた

## 〜天皇賞・春〜 外れました・・・
こんにちは。2回目の投稿になります。テイオーロイヤル抜けました。
前回、初めてTwitterAPIを触って、Java上からツイートすることに成功しました。その時の記事は下記です。

https://qiita.com/mozuku_com/items/2e3e731630243ca83b2b

前回は自分の呟きたい内容を直接打ち込んでツイートしていましたが、今回はランダムな3つの重複しない数字を生成してつぶやいてみようと思い、少しコードを改善してみました。

## 乱数の生成に関して
ランダムな数字の生成方法は色々あるのかなと思いますが、まず思いつくのは、Randomクラスを使用する方法かなと思います。[こちらのページを参考にしました!](https://techacademy.jp/magazine/17733)

“`Random.java
Random random = new Random();
int randomValue = random.nextInt(100);
“`

私が好んで使う方法は、Listに数字を入れて、Coll

元記事を表示

Apache HttpClient 5.x 再利用(使いまわし) 接続設定 ポイント まとめ

# 概要

Apache HttpClient 5.x を使うときのポイントをまとめる。以下の公式ドキュメントはあっさりしているので、コードを読むしかなかった…どこかに詳細があるんだとは思いつつ見つけられなかったのでメモを残す。
また、 Apache HttpClient 4.x と仕組みは似ているので、そのあたりの記事も参考にした。

[Apache HttpComponents – HttpClient Overview](https://hc.apache.org/httpcomponents-client-5.1.x/index.html)

前提として、`PoolingHttpClientConnectionManager`のコードで得た知識なので、他のManagerと設定値の扱いが若干ことなるかもしれない。現時点の最新のライブラリのバージョンは、5.1.3だが、読んだコードはもう少し進んでいるのでその辺の差異も注意したい。

## 参考

– [Apache HttpClient Connection Management | Baeldung](https://www

元記事を表示

[Apache Hop] CSVを読みこみ変換処理してみた

# 対象者
– Apache Hop (データ統合プラットフォーム) を試してみたい方。
– データ収集、変換処理を試してみたい方。
– CSVのファイルを変換処理してみたい方。

# 前提環境
– Docker Desktopをインストールしている
– Apache Hopを準備している

https://qiita.com/Tadataka_Takahashi/items/f13161b981a8699f46ff

https://qiita.com/Tadataka_Takahashi/items/58f69ceb466a5c3a295a

# 手順の流れ
– 読み込むCSVファイルを準備する
– CVSを読み込んで、変換して出力する変換を作成する
– 動作を確認する

## 読み込むCSVファイルを準備する

https://www.oreilly.co.jp/catalog/
O’Reilly の書籍リストを元にCSVファイルを作成します。このデータを例として取り上げます。
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

Singletonについて

# Singletonとは?

`「Singleton(シングルトン)」はデザインパターンの一種です。「Singleton(シングルトン)パターン」と呼ばれることもあります。
「あるクラスのインスタンスが常にたった1つしか存在していない」という状態を実現したいときに利用されます。`

あるクラスについて「複数のインスタンスが作られると困る」場面があれば、Singletonパターンを使用する。
※全機能で使用するキャッシュ保持など

# Singletonの構成

Singleton#getInstance( )でインスタンスを取得することができる。

①インスタンスを保持する内部クラス

/**
* Configクラスの唯一のインスタンスを保持する内部クラス
*/
public static class ConfigInstanceHolder {
/** 唯一のインスタンス */
private static final Config INSTANCE = new Config();
}
}

②インスタンス

元記事を表示

【Android】MVVM的に2つのサンプルアプリを作ってみた 〜 Room & Retrofit2 〜

# はじめに

皆さん、ごきげんよう!れぶです!

今回の記事では、`MVVM設計`を意識して作成した2つのサンプルアプリをざっくり紹介していきます。これからMVVM的にアプリを作成したいと考えている方に特に参考になれば光栄です。

それでは、参りましょう!!

# 開発環境

* MacBook Air
* Android Studio Bumblebee | 2021.1.1 Patch 1
* Java 8
* compileSdkVersion 31
* minSdkVersion 21

# 1つ目のアプリ
## 概要
自分が行きたい国を管理できるサンプルアプリです。データの全表示・追加・削除ができます。
`Room`を使って、ローカルDBのSQLiteを操作しています。

## 動作イメージ
![MVVM.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2456250/25417b5e-aea0-4dda-f8c0-b9b2f68c646a.gif)

## アーキテクチャ図
![MVVM.p

元記事を表示

サーブレットとJSPを使ったフォームの作成

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

今回はWeb画面に入力フォーム、ボタン、コンボボックス、ラジオボタンを作成し、選択した内容をサーブレットで取得するといったものを作ってみようと思います。

本記事以外のコンテンツは[こちら](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17#nablarch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A8%98%E4%BA%8B%E4%B8%80%E8%A6%A7)から閲覧可能です。

なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。

# 動作環境
|種類|バージョン|
|—|—|

元記事を表示

【Java】指定範囲の乱数生成:nextInt(int num)

指定範囲の乱数を生成したい場合、
RandomクラスのnextIntメソッドを使用する。
nextIntメソッドで取得される乱数の性質は下記のとおりである。

nextInt(int num)
・0以上、num未満のint値

使用例は下記のとおりである。
※java.util.Randomをimportした前提での使用例である。
※Randomクラスをインスタンス化した場合の使用例である。

①0~9までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextInt(10);
“`

~説明~
nextInt(int num)で取得できる値は0以上、num未満のint値のため、
範囲:0~x*までの値を取得したい場合はnum = x + 1で指定する必要がある。
*(x=取得したい範囲の上限値)

②1~10までの乱数
“`java:nextInt.java
Random random = new Random();
int randomNum = random.nextI

元記事を表示

【Java/Kotlin】Discord Bot のスラッシュコマンドを実装する-2022

# はじめに
この記事は、Java で Discord Bot のスラッシュコマンド実装方法を解説していきます。
私が嵌った点を含めて、備忘録的に書いていこうと思います。
Discord Bot の作成は、他に記事がたくさんあるので、作成されている前提で話を進めていきます。
リポジトリを使用する際は、プロジェクトに依存関係を追加することを忘れないようにしましょう。

ソースコードは、Java と Kotlin の両方を掲載します。
私が Kotlin 推しなので、、、。
Kotlin すごく楽で便利でいいですよ!

この記事で実際に使用したソースコードは、以下の GitHub に push しておくので全体像を見たい場合はそちらを確認してください。

https://github.com/waigoma/TutorialSlashCommandDiscordBot

# 目次
[1. はじめに](#はじめに)
[2. 目次](#目次)
[3. 使用するライブラリ](#使用するライブラリ)
[4. DiscordBotの招待](#discordbotの招待)
[5. Botにログインする

元記事を表示

「マイクロサービスパターン」の復習 12章 デプロイ

## 12章 マイクロサービスのデプロイ

– マイクロサービスをデプロイする方法について
– Kubernetesを使ったデプロイ
– Kubernetes+Istioを使ったデプロイ
– AWS Lambdaを使ったデプロイ

## Language-specific packaging formatパターン

– Javaでいうjarやwarなどをデプロイする方法
– 利点
– デプロイが高速: 転送はjarやwarだけ。起動も各環境に最適化しているので速い。
– 効率的なリソース使用:tomcatの複数のwarを載せられるので、OSやフレームワークなど各種リソースを共有することになる。見方によっては効率的とも言える。
– 欠点
– テクノロジスタックをカプセル化できない:デプロイするにもフレームワークの詳細を知らないといけない
– リソースの制限ができない
– 1マシンに複数サービスインスタンスをやると密結合:何がしか相手がlocalhostにいる前提のコードが書かれてしまったりする
– 自由に配置できない

というわけで、今の時

元記事を表示

著者トークイベントから考える「良いコード/悪いコードで学ぶ設計入門」の読み方

### こちらの著者トークイベントに参加してまいりました

https://modeling-how-to-learn.connpass.com/event/242976/

参加を踏まえて、どんな人にこの本がおすすめなのかを紹介します。
また、著者トークを踏まえたこの本の実務での使い方を紹介します。
※イベント内容はメモをとりながら視聴させていただきました。
誤解のない記載に努めましたが、
正確性に欠けた記載・著者が言っていない発言を書いてしまっている場合があります。
真に正確な内容につきましては、著者の書籍を是非お買い求めください。
(ちなみにNMRtは5/3から読み始める予定です!)
https://amzn.to/3ybPn4K

#### 【イベント参加感想】
「読んでみたい!」と強く思うようになったきっかけは
「高凝集なカプセル化とイミュータブルを合わせた設計やモデリングを重視している」こと。
それらの技術を駆使して現場でリファクタリングを行なっていることから、書籍の購入を
先倒ししました。(イベント参加前はしばらく後で買う予定でした)

#### 【対象読者】
・設計・特

元記事を表示

【Java】指定範囲の乱数生成:Math.random()

指定範囲の乱数を生成したい場合、
Mathクラスのrandomメソッドを使用する。
randomメソッドで取得される乱数の性質は下記のとおりである。

・0.0以上、1.0未満のdouble値

使用例は下記のとおりである。

①0~9までの乱数
“`java:random.java
int random = (int) (Math.random() * 10);
“`

~説明~
Math.random()で取得できる値はdouble値のため、
int型で数値が欲しい場合はcastする必要がある。

②1~10までの乱数
“`java:random.java
int random = (int) (Math.random() * 10) + 1;
“`

~説明~
Math.random()で取得できる値は0.0以上、1.0未満のdouble値のため、
0が必然的に含まれてしまう。そのため、乱数から0を除きたい場合は+1する必要がある。

③‐10~10までの乱数
“`java:random.java
int random = (int) (Math.random() *

元記事を表示

auカブコム証券のチャートデータの日付を調整する

なんでこんなことになるのか。。。

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST A

元記事を表示

AppletをJSに変換してみる 前編

# はじめに
今回は、JavaAppletのスクリプトをJavaScriptへ移植する手順について解説っぽいことをしていきます。

## なんで変換するんや
JavaAppletは、あらゆるプラットフォームのWebブラウザ上で動作する画期的なWebアプリケーションです。ブラウザ上で動作するツールや、凝ったゲームを簡単にWebサイトに埋め込むことができるため、非常に広く利用されてきました。しかし、ご存知の方もいらっしゃると思いますが、アプレットにセキュリティ上の脆弱性が次々と発見され、後に危険な状態に陥りました。このため、Javaの開発元であるOracle社は、アプレットが安全であることを証明する署名のないアプレットをブロックするようになったのです。

そのアプレットの代わりとなるものは、以下の通りです。

・JavaScript
・HTML5世代のAPI

このほか、FlashとShockwaveはアプレットより高速で、ゲームやアニメーションに広く使われていました。しかし、これらはプラグインが必要で、スマートフォンなどの携帯端末では動作しません。なお、この2つは廃止されてしまいますた。

元記事を表示

[Java] EclipseプロジェクトをMavenへ移行した記録(書きかけ)

# あらすじ

とあるところに、Java 1.6で作られたEclipseプロジェクトがありました。
内容は、Tomcatで動くWebサイトです。
プロジェクトは担当を変えながら、秘伝のタレのごとく、綿々と運用され続けていました。
この先リプレースまで、このまま続くのだろうと思われていました。

ところがある日、突然担当者が離脱してしまいました。
困ったボスたちは、@sengoku を呼ぶことにしたのです。

# 1日目

おいら「一応git使っているのね。よかったよかった。git cloneしてーのっと」

・・・なんか妙に重いな・・・?

おいら「なんでレポジトリ内にjarやclassファイルが入ってるん!?」

# 2日目

おいら「いろいろしんどいので、Maven導入したいのですが」

なぞ「Maven?なんて読むの?」

えっ、そこから!?

相手が知らないのをいいことに、@sengoku は甘い水を語りました。

こうしてMavenを導入してもよいことになったのです。

# 3日目 – 本題

長々とした前フリへのおつきあいありがとうございました。
ここから本題です。

元記事を表示

OTHERカテゴリの最新記事