JAVA関連のことを調べてみた2020年12月24日

JAVA関連のことを調べてみた2020年12月24日

「依存関係逆転の原則(DIP)」を学んだ

## はじめに

Javaの学習を初めてしばらく経ったので、設計力を上げるため、SOLID原則を学んでいる。

学んだ内容について自分の中で咀嚼するため記事を書いてみた。

## 依存関係逆転の原則(Dependency Inversion Principle)とは何か

SOLID原則の一つであり、ソフトウェアモジュールを疎結合に保つための原則、方法論のこと。

下記のような原則が述べられている。

> A. 上位レベルのモジュールは下位レベルのモジュールに依存すべきではない。両方とも抽象(abstractions)に依存すべきである。

> B. 抽象は詳細に依存してはならない。詳細が抽象に依存すべきである。

引用 : [https://ja.wikipedia.org/wiki/依存性逆転の原則](https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87)

## そもそも依存関係とは何か

一言で表すと、クラス間の結びつきのことで

元記事を表示

Androidアプリでありますまいか

ついにクリスマスイブ、この日を待っていました。[アジャイルを使ってクリスマスまでに彼女を作ろうとしていた彼は幸せな夜を過ごせるのでしょうか](https://qiita.com/Let_kdm_free/items/7287325f4a3541e4551e)…
某社のアドベントカレンダーは

[「Develop fun!」を体現する Works Human Intelligence Advent Calendar 2020](https://qiita.com/advent-calendar/2020/whi)
[「Develop fun!」を体現する Works Human Intelligence #2 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/whi2)

だが気にせず[^1] 今月は頑張って色々書いた。そして私は [こんな記事や](https://qiita.com/e99h2121/items/b5c2497000c32d6fd3c3), [こんな記事](https://qiita.com/e9

元記事を表示

【Java】Integerを==で比較した結果trueを返却していた問題

# 結論
Integer(≠int)を比較する場合に**==**を利用すると、-127~+128までの値はtrueを返却する**組み合わせ**がある。

# 何が起きたか
Integerを**==**で比較していた個所が、ある時から突然falseを返却するようになった。
※テストで使った値では正常になってしまったため気付かなかったようだ。

# 以下の2つの要素の組み合わせで発生する
## 1.Integerへの値セット方法
主に以下の3通りがある。
Integer i1 = 16;
Integer i2 = Integer.valueOf(16);
Integer i3 = new Integer(16)

上記の1のパターンはオートアンボクシングされ、コンパイルされた結果は2と同様にvalueOfメソッドを利用した処理となる。(1と2は同値)
参考:[【Java】オートボクシング、アンボクシング](https://qiita.com/chihiro/items/870eca6e911fa5cd8e58 “【Java】オートボクシング、アンボクシング”)

## 2.Integer

元記事を表示

VSCodeで作るJava開発環境&Spring Bootアプリケーション入門

皆さんこんにちは。
**Java Advent Calendar 2020(Qiita)24日目**の記事を書かせていただきます。

## はじめに
Javaでの開発が長いのですが、案件で使うエディタと言えば、eclipse(またはSTS)かIntelliJ IDEAが多かった私。InteliJに慣れてしまうと、ライセンス払ってでも**InteliJ一択**!だったんですが、ふと触ってみた**Visual Studio Code**がいい感じ!だったんです。本記事では、**Visual Studio CodeでJavaの開発環境**を構築していきたいと思います。

また、今回はJavaの開発で使われることが多い「**Spring MVC, Spring Boot**」(フレームワーク)で作る簡易アプリケーションも合わせて作ってみたいと思います。

## 想定開発環境
**OS**: Windows10
**Visual Studio Code**: 1.51.1(2020年12月)
※ VSCode, JDKのインストールは既に済んでいる前提
JDKのインストールについては、以前記事

元記事を表示

ArchUnit 実践:Onion Architecture のアーキテクチャテスト

“`
// 実行環境
* AdoptOpenJDK 11.0.9.1+1
* JUnit 5.7.0
* ArchUnit 0.14.1
“`

## レイヤーの依存関係

* 依存の方向は外側の層から内側の層への一方通行
* 一番外側のアダプター同士は依存しない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899/6bc4b692-b54e-4a04-8444-b3307cd4da3b.png)

https://dzone.com/articles/onion-architecture-is-interesting

## Java プロジェクトのパッケージ構成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899/678e24ee-4786-e87e-e379-a33599328b93.png)

## アーキテクチャテストの実装

“`java
package

元記事を表示

【Spigot】目次[ぐらんのプラグイン上達日記0]

#ぐらん
毎日投稿レベルで書く**予定**なので目次を作っておきます。

今後書いていく予定のもののタイトルも書いておくので
楽しみに待っていてくださ~い(^^♪
###01 開発環境構築
1. IntelliJのダウンロード
2. Spigotでサーバーを構成してみる

###02 Spigot plguin
1. 入退出メッセージの変更方法 ←←執筆中
2. 入室時にhubに自動テレポートするようにする
3. コマンドを実装してみる①

考え中

元記事を表示

【Java】プログラムを一時停止するThread.sleepの使い方

#プログラミング勉強日記
2020年12月23日
Android StudioでAndroid開発をしていて、音楽を一定時間流してその後一時停止するプログラムを書いたときにThread.sleepを使ったので、その使い方を簡単にまとめる。

#スレッドとは
 スレッド(Thread)は処理の実行単位の一つで、プログラムの初めから終わりまでの一連の流れのことをいう。スレッドにはシングルスレッドとマルチスレッドがある。

 シングルスレッドは、直列処理とも呼ばれている。プログラムの始まりから終わりまでが一本で処理される。
 マルチスレッドは、並行処理とも呼ばれている。2つ以上の処理を並行して行う。マルチスレッドを利用するためには、4つのステップが必要である。

1. Threadクラスを継承するクラスを作成
2. Threadクラスを継承するクラスでrunメソッドを実行する
3. Threadクラスを継承するクラスのインスタンスを生成する
4. 生成したインスタンスに対してstartメソッドを実行する

#sleepメソッドとは
 sleepメソッドは、プログラムを一時停止するときに使用

元記事を表示

リアクティブプログラミングをNoSQLで「体験」してみる(Couchbase Reactive APIに触れる)

# はじめに

プログラミング言語を巡って、常に新しいプログラミングパラダイムが生まれています。
ここでは、リアクティブプログラミングという新しいパラダイムがテーマになります(ちなみに、[プログラミングパラダイムについての日本語のWikipedia](https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0)では、リアクティブプログラミングが、リストの最後に〜つまり、最も新しいものとして〜掲載されていました)。

さて、リアクティブプログラミングに関心を持った初学者が、リアクティブプログラミングを学ぶに際して、どういったアプローチが考えられるでしょうか?

手始めとして、まず概念的に理解することが考えられます。インターネットを「リアクティブプログラミング」というキーワードで検索すると、「リアクティブプログラミングとは(何か)」といった記事が、まず目につきます。

そして

元記事を表示

【Java】Qiita 週間LGTM数ランキング【自動更新】

# 他のタグ

[`AWS`](https://qiita.com/items/e24b6279326a462d456c) [`Docker`](https://qiita.com/items/ae11fca7d2eba445b037) [`iOS`](https://qiita.com/items/e61a29a383d0403e92fc) [`Java`](https://qiita.com/items/4c3f84836bfdbb137226) [`JavaScript`](https://qiita.com/items/eaa7ac5b62a0a723edbb) [`PHP`](https://qiita.com/items/3318cbdbc45c6ebd4014) [`Python`](https://qiita.com/items/9d7f2ffeafb36cf59a77) [`Rails`](https://qiita.com/items/93b9e7f7d143e9ce650e) [`Ruby`](https://qiita.com/items/72c3d2e896b

元記事を表示

うっかりgradlew publishでReceived status code 422 from server: Unprocessable Entityを喰らう

# はじめに

人生初のGithub Packagesへのデプロイに挑戦していた。

– [GitHub Packagesで利用するためにGradleを設定する – GitHub Docs](https://docs.github.com/ja/enterprise-server@2.22/packages/guides/configuring-gradle-for-use-with-github-packages)
– [[初心者向け] GitHub Packagesでパッケージを公開する | Developers.IO](https://dev.classmethod.jp/articles/introduction-to-github-packages/)

とかを読みながら

“`gradle
apply plugin: ‘maven-publish’

publishing {
repositories {
maven {
name = “GitHubPackages”
url = ‘https://m

元記事を表示

  Java PDFをExcelで保存  

 

前にJavaでExcelをPDFに変換する方法を紹介しましたが、逆にPDFをExcelで保存したいと思うならどうしますか?今回はSpire.PDF for Javaを通して見せて差し上げましょう。

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendoris:20201223153847p:plain

2.IDEを起動して新規プロジェクトを作成してから、インストールされたフ

元記事を表示

【Java, Scala】ImageIOで画像のリサイズ

## コード全体

“`scala
import java.io.File
import java.awt.image.BufferedImage
import javax.imageio.ImageIO

object ImageUtil {
def resize(file: File): Unit = {
val original = ImageIO.read(file)

// 元ファイルの縦横サイズ(pixel)を取得
val originalWidth = original.getWidth.toDouble
val originalHeight = original.getHeight.toDouble

// 長辺を1とした縦横比を取得
val (widthScale, heightScale) =
if(originalWidth > originalHeight) (1d, originalHeight / originalWidth)
else (originalWidth / origi

元記事を表示

  Java  PowerpointをXPSに変換

今日はJavaでPowerpointをXPSに変換する方法を紹介します。今回はSpire.Presentation for Javaというライブラリが必要となります。これは無料でMicrosoft Office系のソフトをダウンロードせずに使用できます。

では、行きましょう

下準備

1.E-iceblueの公式サイトからFree Spire. Presentation for Java無料版をダウンロードしてください。

2.IDEを起動して新規プロジェクトを作成してから、インストールされたファイルにあった相応しいSpire. Presentation.jarを参照に追加してください。

<

元記事を表示

リクエストスコープとは何ぞや?イメージ解説

こんにちは、Takeです。

今回は、Javaの文法も一通り終えてターミナル上のみで動くコード作成から、
サーバーやブラウザを利用する、簡易的な「Webアプリケーション」の開発まで出来るようになったJava初学者(私を含む)の方々向けの記事になります。

サーブレットで書いたインスタンスをJSPに渡したい時によく使われるものが「リクエストスコープ」と呼ばれるものです。

見たことがある人も多いと思いますが、「request.setAttribute()」「request.getAttribute()」というやつです。

この「リクエストスコープ」というものについてなのですが、私は以前まで「変数のスコープ」と似た様なものだと認識していました。とはいえ、実際は似た様なものなのですが。

ちょっとだけイメージを変えた方がリクエストスコープについて理解出来やすいのではないか?と思い、この記事を書くことにしました。

まず、変数のスコープと言うのは、例えば

public class Example {
public static void main(String[] args) {

元記事を表示

JavaでHashMapの初期化

> Map paramMap = new HashMap<>();

csvから番号のリストを読み込んで、その中からユニークなものだけに対して次の処理にすすませたいときにHashMapを使おうとしたが、、

> Map paramMap = null;
> while((record = reader.readNext()) != null){
> if(paramMap.get(record[0]) != null {
> continue;
> }
> paramMap.put(record[0],record[0]);
> 次の処理
> }

とすると、paramMap.getの部分でnullpointer.exceptionでエラーが発生します
対処はわかると簡単で

> Map paramMap = null;

これではpramMapが初期化できておらず、呼び出すとnull参照が起きてしまうので
ここを
> Map paramMap = new Has

元記事を表示

多項式補間を使用して強震モニタ画像から数値データを決定する

この記事は 地震界隈 [Advent Calendar 2020](https://adventar.org/calendars/5903) 20日目の記事です。個人的な事項のために数日遅れています。お詫び申し上げます。
長い記事ですが、喜ばれることを願っています :relaxed: 。

#前書き
強震モニタデータを使用するサードパーティのソフトウェアでは、特定の数の機能がGIF画像から得られた数値の活用に依存しています。 実際、情報は特定のピクセル位置で特定の色にエンコードされるため、ソフトウェアには、ピクセルを観測点に関連付けるための観測点データベースだけでなく、任意の色を数値に変換する方法も必要になります。

適用可能な使用法は、計測震度値の表示、または地震検出アルゴリズムですらあります。
リアルタイム震度、最大加速度、最大速度など、データのいくつかのフィードを見つけることができ、それぞれが異なるスケールを使用しています。
これまで、防災科学技術研究所(NIED)は、値を見つけるための公式の方法や、データチャネルの数値を特徴とするAPI(JSON形式など)を開示していなかったた

元記事を表示

V-forとV-showで特定の要素だけclassをつける

##やりたいこと
DBからひっぱってきたデータをvueのコンポーネントの中のdataにセットし、それをv-forで表示させているとします。
DBからひっぱってきたデータのいずれかに真偽値を設定するなどしておけばv-forの中で動きの変化はつけることができますが、
「そのコンポーネントの中だけのdataを追加し、v-forの中の特定のコンテンツだけclassをつける」などの変化をつけたい場合にやる方法。

##記述内容
“`javascript

//描写部分