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

JAVA関連のことを調べてみた2022年01月14日
目次

C++,C#のコメントアウトテクニック

# 概要
下記のような記載が出来る言語で使えるコメントアウトのTips

[使える言語の参照](https://qiita.com/power3812/items/d8fc76f551970085e189)

“`main.cpp
// 1行コメント
/*
複数行コメント
複数行コメント
*/
“`

# 内容
複数行コメントを1文字で切り替える
先頭の**スラッシュ(/)**を消すと切り替えれる

“`main.cpp
//*
現在の
複数行コメントは
コメントアウトされない
//*/

/*
現在の
複数行コメントは
コメントアウトされる
//*/
“`

機能の切り替えを1文字で切り替える
上記のIF版で
先頭の**スラッシュ(/)**を消すと切り替えれる

“`main.cpp
//*
Active Block
/*/
Disable Block
//*/

/*
Disable Block
/*/
Active Block
//*/
“`

# まとめ
C++er には多少有名なのでN番煎じではあるもののいろいろな言語で使えるので書いてみました。

C++では#i

元記事を表示

assertEqualsやassert_equalの引数はなぜ expected, actual の順なのか、調べてみた

## はじめに

xUnit系のテスティングフレームワークでは、2つの値が等しいことを検証するメソッド(`assertEquals`や`assert_equal`など)の引数が expected, actual(期待する値、実際の値)の順に並びます。

“`java
// Java (JUnit)
assertEquals(2, calculator.add(1, 1));
“`

“`ruby
# Ruby (minitest または test-unit)
assert_equal(2, calculator.add(1, 1))
“`

しかし、この引数の順番は直感に反するので、逆に書きたい、と思う人も中にはおられるようです(というか、僕も昔そう思っていました)。

“`java
// actual、expectedの順がいい!
assertEquals(calculator.add(1, 1), 2);
“`

“`ruby
# actual、expectedの順がいい!
assert_equal(calculator.add(1, 1), 2)
“`

元記事を表示

Effective Java第3版 項目26 p120に記述されているコードスニペットを完成させてみた。

 [Effective Java](https://www.maruzen-publishing.co.jp/item/?book_no=303408)を読んて勉強してみようと思いましたが私にとっては難しいものでした。そこでじっくりとコードを打ち込んで理解しようと思いましたがコードが断片的であり、すんなり理解できなかったので、コードの省略部分を想像に任せ動くようにして、理解を深めようと思います。
 本の1ページ目から始めればいいのですが、勉強会に途中から参加することになり、項目26から始めます。またこの記事は、記述されていない省略されたコードを補完することが目的で、何か技術的な説明をするのが目的なので、本を持っていないと理解できないことが多くあると思います。

#1.本記事の対象の項目とページ
第5章 ジェネリックス 項目26 原型を使わない p120

#2.コードスニペットを動くように補完したコード
 p120上段部分で記述されている「やってはいけないコード」のスニペットを以下のとおり書き加えて、本書に書かれているエラーを吐き出すことができるようにしました。

 次のコードは、m

元記事を表示

WebViewで基本認証させる際の注意点


## 最初に結論

AndroidアプリのWebViewで基本認証させようと思って検索するとよく見かけるサンプルコードについて、これではコンテンツに埋め込まれている外部サイトのオブジェクト(画像とかロギングツールとか広告オブジェクトとか)へ認証情報を流してしまうかもしれないので、注意が必要。
つまり、**認証情報を提示するホスト/URLを、きちんと制限しましょう。**という至極当然の結論。


## よく見るサンプルコード

“`java
webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
handler.proceed(“ユーザ名”, “パスワード”);
}
});
“`

つまり、WebViewClientクラスの「onReceivedHttpAuthRequest」をオーバーライドして

元記事を表示

JavaでとりあえずWeb APIを叩く方法

## JavaでAPIを叩く方法でつまづいたので書き記す
とりあえず公開されているAPIを叩きたい人向け
もっといい方法ありそうですが書いておきます

## importするライブラリ
“`java
import java.net.URL;
import java.io.*;
“`

## コード
“`java
final String endpoint = “任意のURL”;

                // ここではkeyとidのパラメータが必要な場合を書きます。必要ない人は飛ばしてください。
final String key = “パラメータ必要な人は”;
final String Id = “任意で”;

                // パラメータが複数ある人はidのように&で繋げてください。
String url = endpoint + “?key=” + key + “&id=” + Id;
URL obj = new URL(url);
InputStrea

元記事を表示

初めてのjda-utilties (JavaのDiscordBot)

使い方・初めてではまったことを書いていきます。
jda初心者なのでミスがあるかもしれないです。

# appとbotの作成

まずDiscord Developer Portalに行きます。

> https://discordapp.com/developers/applications/

1. NewApplicationを押す
1. 名前の入力
1. create
1. ここで画像とかを設定できます
1. 左のメニューからbotを選択します
1. AddBotを押す

これでbotができました。

### botの招待urlの取得

1. 左のメニューからOAuth2 > URL Generatorを選択します
1. botを選択し、権限も設定します。
1. Copyでurlをコピーできます。

### tokenの取得

1. 左のメニューのbotを選択します。
1. アイコンの右にあるTOKENの下のCopyでコピーできます。

### ownerIdの取得

1. botのオーナーでログインします。
1. 設定を開き詳細設定を開きます。
1. 開発者モードをオンにします。

元記事を表示

JavaのHttpClientで、APIのレスポンスボディを自作クラスのインスタンスにする方法

# 以下のAPIのレスポンスボディを扱いやすくしたい
“`json
{
“id”:”1″,
“name”:”田中”
}
“`

# 方法

### レスポンスボディに対応したプロパティを持つクラスを作成する
“`java
public class ApiResponseBody {
private String id;
private String name;
}
“`

### jacksonを導入する(今回はMaven)
“`xml

com.fasterxml.jackson.core
jackson-core
2.13.1

“`
### レスポンスボディを自作クラスのインスタンスにする
“`java
// APIにリクエスト
var client = HttpClient.newHttpClient();
var request = HttpReq

元記事を表示

Javaで簡単なパスワードジェネレーターを作ってみた

Java初心者なので、とりあえずJavaのアルゴリズムを作成してみました。
今回の要件としては、

“`
・パスワードは数字のみ
・桁数と数はユーザーが指定できる
“`

といったものになります。

# 処理の内容

“`
・ユーザーから入力された値(桁数・パスワードの数)
・指定された桁数×指定されたパスワードの数分の乱数を生成する。
・指定された桁数で区切る
・もしユーザーが全角・半角の数字以外のものを入力してきたら、「入力は数字のみでお願いします」
という言葉を出力し、もう一度入力させる。
繰り返し数字を入力してこなかったら、数字を入力するまでそのアナウンスを繰り返す。
“`

といった処理になります。
それではやっていきましょう!!!!!

まず、パスワードを作るために必要なユーザーからの入力を受け付ける部分を作っています。

# まず、ほしいパスワードの数を求めます

まず3行目から、

“`
System.out.println(“ほしいパスワードの数を入力してください”);
String inputQuantity = passQ

元記事を表示

Javaを使用してWord文書に複数のテキスト透かしを追加する方法

##頭語
Word文書の透かしについて、皆よく知っているはずです。以前は単一行の透かしを紹介したことがありますが、日常でWordを使用していると、常に複数の透かしを追加しなければならないです。故にこの記事で、Javaを使用してWord文書に複数のテキスト透かしを追加する方法を紹介します。

##コードのテスト環境
1. Intellij Idea 2019.1
2. JDK 1.8.0
3. Spire.Doc.jar

##jarパッケージの取得とインポート
JarパッケージをIDEAに手動でインポートします。具体的な手順は次のとおりです。
**ステップ1**:E-iceblueの公式Webサイトに登録してログインし、[Spire.Doc for Java](https://www.e-iceblue.com/Download/doc-for-java.html)ダウンロードページにアクセスして製品パッケージをダウンロードします。
**ステップ2**:製品パッケージを解凍し、libファイルの下でSpire.Doc.jarを見つけます。
**ステップ3**:Spire.Doc.jarを

元記事を表示

Java Twitter投稿

# 前提
Javaを利用してTwitterで呟くためには、twiiter4jを利用する記事を多く拝見しました。しかし、2021年12月にtwitterAPIがバージョンアップした為、twitter4jを利用した投稿は上手く行きませんでした。([twitter4j-v2](https://github.com/takke/twitter4j-v2)というTwitter API v2向きのtwitter4jが存在しますが、自分の環境では依存関係を上手く読み込むことができませんでした。)2022年1月現在ではJavaでのTwitter API V2向きに対応している記事が少なかった為、記事録的に残しておきます。初学者な為至らない点があるかもしれません。

#Twitter Developer 開発者申請(事前準備)
1. [Twitter Developer](https://developer.twitter.com/en/docs)にアクセスし、開発者申請を行います。
1. 以下リンクなどを参照し、申請を完了させます。
1. https://auto-worker.com/bl

元記事を表示

【Jython】AutoCloseable / Closeable 実装オブジェクトに with 文を使うには

# `try-with-resources`文と`with`文
Java には[`try-with-resources`文](https://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html)があり、これを、[インターフェース`AutoCloseable`](https://docs.oracle.com/javase/jp/10/docs/api/java/lang/AutoCloseable.html)又は[インタフェース`Closeable`](https://docs.oracle.com/javase/jp/10/docs/api/java/io/Closeable.html)を実装したクラスをインスタンス化したオブジェクト(以下、`AutoCloseable`/` Closeable`実装オブジェクト)が使用すると、ブロック終了時又は例外発生時に於いて、自動的にそのオブジェクトの`close()`メソッドが呼び出され、クローズ処理が為される。

次に示すJavaソースコ

元記事を表示

Spring BindingResultインスタンス作成方法

## いきなり本題
いっつも、忘れたころに、BindingResultを手動で作りたくなる。

“`java
Form form = new form();
BindingResult result = new DataBinder(form).getBindingResult();
“`

## References
* https://arkgame.com/2020/01/18/post-43133/

元記事を表示

WSL2でファイルシステムのアクセス速度がどの程度変わったか

なんか速度比べばかりしているような気がしますが・・・
今回はWSL2のファイルアクセス速度についてです。

WSL1から比べるとWSL2ではLinuxファイルシステムのアクセスは高速になったが、Windowsファイルシステム(/mnt/ドライブ名)のアクセスは遅くなったと言われます。
実際例えばJavaのソースリポジトリを `/mnt/c/` 以下のディレクトリにcloneしてきてビルドしたりすると極端に遅いので体感的にもわかります。

それでも意外とWSL2のほうが最新だしWSL2使おうというような感じで使われてて、かつ `/mnt/ドライブ名` 以下にワークディレクトリがあってビルドが遅くても比較対象がないので気にしていないなんてことが散見されるので、今更ながら記事にしてみました。

# 検証環境

* OS
* Windows 10 Pro
* バージョン
* 21H1
* CPU
* Core i7-10700
* ディスク
* Crucial P2 SSD 1TB

# 速度計測方法

WSL1,WSL2でそれぞれ以下のように計測しました。

元記事を表示

Eclipseでプロジェクトの外部の依存ライブラリのjarを抽出する

gradleでパッケージ依存関係を管理しているのですが、すべてのjarをクラスパスに読み込ませる昔ながらのバッチのためにそれらのjarを取得したいのです。
F/Wのバージョンアップに伴い、一新したい。

~~実行可能jar使えとかSpring使っているならBootにすればいいのにとかあーあー聞こえない。~~

## 雑な手順
1. Eclipseのプロジェクトエクスプローラー(いっぱいプロジェクト並んでいるやつ)から対象のプロジェクトを右クリックする。
– 出てきたコンテキストメニューから`エクスポート`を選択する。
– エクスポート対象として`実行可能JAR`を選ぶ。
– ダイアログが出てくるので適当にぽちぽちする。
– 依存JARをサブフォルダーに出力、みたいなラジオボタンがあるので設定して完了する。

元記事を表示

JavaでPowerPointにアニメーション効果を追加する方法(プリセットアニメーション/カスタムアニメーション)

##背景
PowerPointスライドは形状にアニメーション効果を設定することができます。よく見られるアニメーション効果は組み込まれた固定タイプで、つまり、アニメーション効果とパスは事前設定された固定テンプレートですが、アニメーション効果を設計する場合、ユーザーは自分の好みに応じてアニメーションモーションパスを定義してアニメーション効果をカスタマイズすることもできます。以下では、Javaバックエンドプログラムコードを使用して、PowerPointにアニメーション効果を追加する方法を示します。もちろんプリセットアニメーションとアニメーション効果をカスタマイズする方法が含まれています。

###テスト環境には次のものが含まれます。

ターゲットテストドキュメント:Power Point 2013
コンパイル環境:IntelliJ IDEA 2018
JDKバージョン:1.8.0
PowerPointライブラリのバージョン:Spire.Presentation.jar 5.1.0

注:このPowerPointライブラリを介してアニメーションタイプ(AnimationEffectType)を

元記事を表示

【OOP】01_オブジェクト・クラス・インスタンス

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、オブジェクト・クラス・インスタンスについて、説明したいと思います。

******
# 1. オブジェクトとは?
まず一般的なオブジェクトの概念について探してみると**現実世界に存在する’物体’、’対象’になります。

※ 参考
https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88

具体的に例えてみると人間・犬のような動物も、スマートフォン・PC・箱のような物も、ポケモン・デジモンのようなゲームのキャラクターもオブジェクトと言えると思います。

ではOOPでのオブジェクトは何でしょう?
私は現実世界のオブジェクトから重要で核心的な所を抽象化してクラス化し、クラスを元にしてメモリー上にロードされたデータだと思います。

オブジェクト指向では上記の説明通りメモリー上にロードされたオブジェクトの相互作用を通してプログラ

元記事を表示

Android開発におけるドキュメント作成”Dokka / KDoc”の導入手順

# Dokkaとは

“KDoc”形式で記載したコメントを、Javadocと同様な形でドキュメントを作成できる。
JavaとKotlinが混在したプロジェクトのドキュメントも生成可能

https://github.com/Kotlin/dokka

# 導入

“` project/build.gradle
buildscript {
ext {
dokka_version = “1.6.10”
}
dependencies {
classpath “org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}”
}
“`

“` app/build.gradle
apply plugin: “org.jetbrains.dokka”

android {}
dependencies {}

// dokkaHtml 用の設定
dokkaHtml.configure {
outputDirectory.set(new File(“${buildDir}/dokkaHtml”))

元記事を表示

Java Gold SE 11に合格しました【正答率85%】

先日Java Goldを受験し、見事合格しましたのでその経緯をまとめたいと思います。

#Java Gold試験概要
まず簡単な試験概要です。
・試験名:Java SE 11 Programmer II
Pearson VUEで試験の申込みをする時に「Java Gold」だと検索に引っかからないので注意です。
・試験時間:180分
一般的なベンダ試験の試験時間だと思います。普通に解いていれば180分丸々問題に費やすことはないと思います。
・出題数:80問
・合格ライン:63%
ベンダ試験の上位資格にしてはかなり合格ラインは低いな、という印象でした。なので20問くらい間違えてもいいかぁくらいの気楽な気持ちで取り組みました。
・受験要件:Java Silverを取得済みであること

#自身の背景
まず今回Java Goldを受験するにあたり、自身の経歴について記載します。

###Javaの経験
大学時代と社会人1年目で少し触れて、Java Bronzeは取得。しかしその後は業務等で使う機会は全くなく、内容はほとんど忘れてしまった。昨年6月にJavaを使う部署へと異動し、猛勉強を開始。昨年

元記事を表示

Javaデベロッパが知るべきDockerセキュリティ5つの大切なこと

セキュリティのシフトレフトを考えると、開発段階から考えるということが重要ということはわかってはいても、どう実践すれば良いものか、、、
わかってはいつつ、なんとなく不安になりつつも、忙しく作業に没頭せざるをえないJavaデベロッパの方も多いのではないでしょうか。

######今回はJavaデベロッパ向けDockerのセキュリティの短めの記事のご紹介です。

参考資料:

* [JavaデベロッパのためのDocker:セキュリティを失敗させないために知っておくべき5つのこと(原文)](https://snyk.io/blog/docker-for-java-developers/)
* [Docker for Java developers: How not to fail your security(動画)](https://www.youtube.com/watch?v=v2SkWn-ZRDg)

#JavaデベロッパのためのDocker:セキュリティを失敗させないために知っておくべき5つのこと

Brian Vermeer
ブライアンフェルメール
2020年11月20日
D

元記事を表示

【Java文法】例外処理

こんにちは、コイキングです。

本記事では’例外処理’について、説明したいと思います。

******

# 1. 例外処理とは?
例外処理はプログラムの実行中に予想されていない結果が発生した際の対応を言います。

例えるとコンソールからユーザー入力で’数字データ’を入力するべきものを’文字列データを入力してもらい’、文字列のデータを数字変数に代入しようとする場合
プログラムは例外を発生させます。

上記のような状況で **1) 例外発生の理由をログなどで知らせたり、2) 例外が発生した際に必要なロジックを実行すること**などを例外処理で担います。

# 2. try-catch構文
try-catch構文は **例外が発生が予想されたり、必ず例外処理をしないといけないコード囲み例外を処理**します。

例外発生が予想される所のコードをtry構文で囲んで、catch構文に例外を処理するロジックを記載します。

“`
File file = new File(“newFile.txt”);
//file.createNewFile(); // ファイル作成時に例外処理をしないとコンパイ

元記事を表示

OTHERカテゴリの最新記事