JAVA関連のことを調べてみた2021年10月31日

JAVA関連のことを調べてみた2021年10月31日

クラス名、行番号、メソッド名をタグにセットしてログを出力する (Android Studio + Java)

“`java:Debug.java
package firstlast20180521.utilities;

import android.util.Log;

public class Debug {

static final String SELF_CLASS_NAME = “firstlast20180521.utilities.Debug”;

//引数省略時
public static void print() {
print(“-“); //Log.dのログメッセージが空白であってもログが出力されるように、空白以外の値をセットしている。
}

public static void print(String text) {
StackTraceElement[] trace = Thread.currentThread().getStackTrace();

int length = trace.length;

String className = “”;

元記事を表示

Java: Mockitoでハマった5つの落とし穴とその解決策

[Mockito](https://site.mockito.org/)は、Javaプロジェクトのテストコードを書くときに利用できる優れたライブラリです。

しかし、コードの書き方を間違えると期待通りには動作せず、原因究明に時間を浪費してしまうこともあります。
このため、この記事では、私が過去にハマった落とし穴をまとめました。

以下、執筆時点の最新リリースである、Mockito 4.0.0をベースにしています。

# [InvalidUseOfMatchersException](https://javadoc.io/static/org.mockito/mockito-core/4.0.0/org/mockito/exceptions/misusing/InvalidUseOfMatchersException.html)の発生

テストを実行した際に、下記のようなエラーが出力されることがあります。

“`
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument

元記事を表示

JavaSilverをオンライン試験(監督付き)で受験する前に読んでほしいメモ(Bronze, Goldも可)

#この記事で伝えたいこと(要約)
– 試験中、机にはキーボード・マウス・飲み物しか置くことができない(メモ紙やペンがダメ)
– メモ代わりに[オンラインホワイトボード](https://www.pearsonvue.co.jp/onvue/whiteboard)が使えるが小さくて使いづらい
– チャットベースで対応されるため声出し不要だったがやりづらい

**結論:おそらくテストセンター受験のほうが準備も気持ちも楽**

#事務的なやること
1. Oracleアカウントを作成する
1. CertView(Oracle認定システム)にログインする
1. CertView経由で試験チケットの購入と受験予約をする

ここまではテストセンター受験と共通だと思うので説明はこのくらいにする。
CertView(Oracle認定システム)の詳細については[こちら](https://www.oracle.com/jp/education/certification/migration-to-certview.html)を参考に。

#環境的なやること
ここからが大事(Just Do It!)

##受

元記事を表示

未経験からJavaを学び始め、System.out.printlnについて調べてみた。

未経験からエンジニアを目指している30歳。
PHP初級認定試験、LPICレベル1は所持しています。

元記事を表示

Autonomous Database(ATP) に Java(JDBC Thin Driver) で ウォレット無しで接続してみる。

Autonomous Database(ATP/ADW/AJSON) は、従来は Autonomous Database自体が持つウォレットのファイル群を
クライアント側に配置する必要がありましたが、ウォレット無しのTLS接続を許可するオプションが追加されました。

> Update Network Options to Allow TLS or Require Only Mutual TLS (mTLS) Authentication on Autonomous Database
> https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/support-tls-mtls-authentication.html#GUID-3F3F1FA4-DD7D-4211-A1D3-A74ED35C0AF5
>
> About TLS Authentication
> https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/connect-introdu

元記事を表示

【マルチスレッド】syncronizedしなくても良いパターン(Immutableパターン)

↓前回記事

https://qiita.com/kannna5296/items/576385c08e5b770149c1

非同期デザインパターンシリーズの第2弾です。前回は「Single Threaded Executionパターン」を紹介しました。

##参考図書

この本の第2章「Immutableパターン」を基にしています。

##

元記事を表示

Javaのコーディングでお手本探しに役立ちそうなリンクたち

# はじめに
いわゆる「良いコード」や「読みやすいコード」を書くためにお手本が欲しくなる時があると思います.本記事では,こういったお手本を探すときに参考になりそうな検索キーワードやリンクを備忘録も兼ねて残そうと思います.`Java`を題材にしてまとめてみました.

# 「良いコード」や「読みやすいコード」を書く基礎になる指針
「変数名が1文字になるのは避けた方が良いよ」や「`import`文はアスタリスク付きで書かない方が良いよ」といったコードを書く上での指針は基本的にこちらをご参考になさると良いのかなと思います.

https://future-architect.github.io/coding-standards/documents/forJava/Java%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E8%A6%8F%E7%B4%84.html

「良いコード」や「読みやすいコード」のお手本はこういったコンセンサスの取れたルールみたいなのが基礎になると思いますので,こちらでどんな書き方が良いのか,まずいのかを確認す

元記事を表示

@EqualsAndHashCode

### @EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode
equals, hashCode 自動生成
equals : 二つのObjectの値が一致するか、同等性(equality)を比較する演算子

hashCode : 二つのObjectが同じであるか, 同一性(identity) を比較する演算子

Java beanで同等性の比較のためequalsと hashcode methodをoveridingして使うんだが、

@EqualsAndHashCode Annotationを使ったら自動的にこのメソッドを生成できる。

callSuper 属性を通じて、eqaulsと hashCode メソッド自動生成し親クラスのフィールドまでカバーするかを設定できる。

@EqualsAndHashCode(callSuper = true)の設定し、親クラスのFieldの値も同一であるか確認しfalse(Default)の場合
自身(this)クラスのFieldだけを考慮する。

https://blog.y-yuki

元記事を表示

Amazon CodeGuruを用いて悪しきコードを撲滅したい

## ターゲット
– アプリケーション開発でコードを書いたことがあるひと
– コードレビューしてもらう相手(十分な技術・知識を備えた相手)がいないor 手が空いていない
– コードレビューをしたくても時間の確保が難しい

## はじめに
昨今、従来からあるウォータフォール開発に始まり、アジャイル開発やプロトタイピング開発などソフトウェア開発手法が体系化されたことで、開発スピードとプロダクトの質ともに向上する動きが活発となっています。
しかし、開発スピードとプロダクトの質を担保しようとする際に必ずネックとなるものがあります。

それが**コードレビュー**です。

コードを書いたことがある人は、個人の癖や経験が浅いときに誰しも悪しき習慣がコードに現れてしまう経験があると思います。

そこで、最良なコードレビューと悪しきコード撲滅する方法を考えたいと思います。

## 開発プロセスの体系化とコードレビューの関係
一般的なソフトウェア開発では各工程の粒度を如何にせよ、以下のプロセスを循環させます。
**コーディング → ビルド + テスト → デプロイ → 計測 → 改善**
開発するシス

元記事を表示

Couchbase Lite機能解説:クエリ③ JOIN、GROUP BY、ORDER BY

## はじめに

本稿では、Couchbase Liteデータベースに対するクエリにおける、JOIN、GROUP BY、ORDER BYスタートメント(相当の操作)について、コード例を示して紹介します。

## JOIN

### 用途
JOIN句を使用すると、JOINステートメントで指定された基準によってリンクされている複数のドキュメントからデータを選択できます。

### 例
航空会社の詳細を、航空会社IDでリンクされたルートの詳細と組み合わせて表示します。

“`java
Query query = QueryBuilder.select(
SelectResult.expression(Expression.property(“name”).from(“airline”)),
SelectResult.expression(Expression.property(“callsign”).from(“airline”)),
SelectResult.expression(Expression.property(“destinationairport”

元記事を表示

Couchbase Lite機能解説:クエリ② WHERE句

## はじめに

Couchbase Lite は、SQLと同様に、WHERE句を使用して、クエリによって返されるドキュメントを選択できます。

WHERE句を表現するためには、`Expression`(式)クラスが使われます。WHERE句のフィルタリングを実現するために、任意の数の式をチェーンできます。

## 比較演算子

WHERE句では、条件を指定するために、比較演算子を使用することができます。

以下の例では、`equalTo`演算子を使用して、「type」プロパティが「hotel」に等しいドキュメントを選択しています。

以下は、「type」プロパティの値として「hotel」を持つドキュメントの例です。

“`JSON
[
{
“id”: “hotel123”,
“type”: “hotel”,
“name”: “Hotel Ghia”
},
{
“id”: “hotel456”,
“type”: “hotel”,
“name”: “Hotel Deluxe”,
}
]
“`

以下のコードの、`whe

元記事を表示

Java CSVからのデータを表示させる(spring boot)

#プロローグ

Java(spring boot)を触り始めてコードを書き始めて2週間程度ですが、
色々と使い方を覚えてきたので、メモとして記録を残します。

不備不足だったり、理解が浅くて説明不足なところがあるかと思いますが、
勉強して更新していきたいとは思っています。

このプログラミングを書く前の理解度としては、アノテーションも分からずでした。
spring bootも分からなかったので、Ruby on Railsと同じようにMVCでデータを取得、加工、表示するのかなと思っていました。

計算処理を行う「service」というものの存在も知りませんでした。

##この記事で何ができるようになるか

まだ自分自身もそれぞれのクラスの役割を理解してませんが、
データを受け取って表示させることができると思います。

まずは、わからないなりに手を動かして画面に表示させることで、なんとなくの流れをつかむことが大切なのかなと思います。

この記事でやることとしては、ファイル内に作成したCSVファイルを読み取って、画面上に表示させるというイメージです。

また、ただ読み取って表示させるだけでは

元記事を表示

【Sfdx/Apex】パッケージ開発時の「In field: apexClass – no ApexClass named HogeClass found」と向き合う

# 概要
SalesforceのAppExchangeアプリの開発時、スクラッチ組織へのソースプッシュ時に起こる`In field: apexClass – no ApexClass named HogeClass found`の対策方法

対象の読者の方は
– パッケージ開発をされている
– スクラッチ組織やxml形式のメタデータ、Gitの知識がある
– 上のエラーが出て困っている

以上です。よろしくお願いします。

## エラーの経緯

結論を述べる前に経緯を書きます。

あるスクラッチ組織で開発をしていたのですが、30日の期限の中で開発が間に合わなかったので、ソースをブランチで管理したまま、スクラッチ組織を作り直そうと思いました。

プロファイルやカスタムオブジェクトなど、さまざまなメタデータの変更点はあったのですが、`sfdx force:source:pull`を行い、基本的な変更点はバージョン管理してから作り直しました。

mainブランチのコードでスクラッチ組織を作り、ブランチを切り替えてから`sfdx force:source:push`をしたところ、掲題のエラーが出

元記事を表示

【自分用メモ】Flyway使い方

### この記事に書くこと

・Java経由でのFlyway実行方法
・Mavenプラグイン経由でのFlyway実行方法


#### Java経由

1.pom.xml

“`


  org.flywaydb
  flyway-core
  8.0.1



  org.postgresql
  postgresql
  42.2.23

“`

2.Mainクラス

“`
public static void main(String[] args) {
 # appliacation.propertiesに外

元記事を表示

Spring Boot 2.5以降でHTTP/2を試す

以前はHTTP/2試すのに色々と設定が必要だったが、https://hirakida29.hatenablog.com/entry/2019/11/30/231927 で書かれているようにSpring Boot 2.5以降はプロパティを一つ設定するだけになった。これを試す。

# ソースコード
“`gradle:build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.5.6’
id ‘io.spring.dependency-management’ version ‘1.0.11.RELEASE’
id ‘java’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’17’

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-we

元記事を表示

Javaで分数のクラスを書いてみた(既約分数への変換,非Integerの分母分子に対応)

# はじめに
 本記事では`Java`で自作してみたので分数のクラスを公開させていただきます.一応テストは行いましたが欠陥があったらすみません泣

 特徴としては,次の3点を目指しました.

– 分母,もしくは分子が小数点ありでも大丈夫(本記事では分母と分子の型は`BigDecimal`です.).
– 既約分数にできる.
– 分数同士の割り算で分母が`0`になった場合は例外が発生する.

 「この分数って割り算したら無限小数になっちゃうから,切り上げとかしないといけないよなあ.でも切り上げとかやって誤差大きくしたくないなあ.代わりに既約分数とかに変換できたら嬉しいなあ」といったニーズのある方の助力になれたら嬉しいです.
 もし読みにくいコードがあればすみません泣

# コード

こちらが分数のクラスのコードです.クラス名は`Fraction`としました.

“`Fraction.java
import java.math.BigDecimal;

public class Fraction {
private BigDecimal numerator; // 分子
private

元記事を表示

【Java】演算子について簡単にまとめ

# 式の構成要素
– **リテラル**は **オペランド** の一種であり、数字「5」や文字列「Hello World」など、具体的な値のことを指す。
– オペランドは「演算子で操作される値」のことであり、日本語では「被演算子」である。変数、定数、リテラルが含まれる。
– `b = a + 5` という式があったとして、式を構成する要素は二つに分けられる。変数の`b` や`a`、値の `5` にあたる **オペランド** 、`=`や`+`にあたる **演算子** である。すべての式はこの二つの要素で構成される。

# 演算子
– 式に演算式が複数ある場合、優先順位の高い演算子から順に評価される。`評価`とは、Javaが式に従って計算処理をすることである。
優先順位は15段階。`()`で式を囲むことによって、その部分だけ優先順位を引き上げることができる。
– 同じ優先順位の演算子が2つ以上ある場合は、「結合規則の原則」を当てはめて考える。これは、演算子ごとに決められた「方向」から順に評価されるものである。

– 四則演算を行うための演算子は、 **算術演算子** と呼ばれる。

|演算

元記事を表示

現場で使用したMapの使い方メモ

#目次
[1.Mapの初期化編](#1-mapの初期化編)
[2.Mapに要素を追加する編](#2-mapに要素を追加する編)
[3.Mapから要素を取り出す編](#3-mapから要素を取り出す編)
[4.Mapの中身を確認する編](#4-mapの中身を確認する編)
[5.さいごに](#5-さいごに)

#1. Mapの初期化編

## ① Map<キーの型, 値の型> Map名 = new HashMap<>() で初期化
※型はクラス型のデータ型(String、Integer、Longなど)を指定する必要があるので注意。

“`java
Map fishNameMap = new HashMap<>();
“`

キーと値が詰まっていくイメージはこちら。

| キー | 値 |
| :-: | :-: |
| 1 | かつお |
| 2 | さんま  |
| 3 | あじ |

##② Mapの値にはリストを設定することも可能

“`ja

元記事を表示

DIは美しいデザインパターン

こんにちは。お久しぶりです。

Springで開発中なのですが、なんとも難しい。。。
今日はDIについて書こうかなと思います。

# DI(依存性注入)の定義

> コンピュータプログラムのデザインパターンの一つで、オブジェクトなどの間に生じる依存関係をオブジェクトのコードに直接記述せず、外部からなんらかの形で与えるようにする手法。

これを理解するためには、「依存」という意味と「注入」という意味を理解する必要がある。

# 依存

依存とは一言で言うと「他のクラスを利用しているかどうか」のことである。

例えば下記のコードがあるとする。

“`Car.java
public class Car {

private HondaEngine hondaEngine;

public Car(HondaEngine hondaEngine) {
this.hondaEngine = hondaEngine;
}

public void go() {
hondaEngine.startEngine();
h

元記事を表示

Spigotプラグイン開発 ~環境構築・HelloWorld~

##最初に##

・この記事はMinecraftサーバーのプラグインを作りたいけど何の知識もない! という方向けです。
・もしかしたら間違っていることがあるかもしれませんがご了承ください。

##Intellij IDEAのダウンロード・設定##

JetBrains社のIntelliJ IDEAをダウンロードしていきます。

https://www.jetbrains.com/idea/download/

上のリンクからダウンロードしてください。
プラグインを開発するだけなら **Community** で十分だと思います。

![chrome_76cm29VFtz.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1840949/4af90f99-b96f-78d4-c091-ae5fb0c4fad3.png)

ダウンロードが完了したら開いてNextを押していってください。

![ideaIC-2021.2.3_IY1b3VFyKP.png](https://qiita-image-sto

元記事を表示

OTHERカテゴリの最新記事