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

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

Toast 文字大きく表示させたい Android Studio  メモ

ボタン押すと3枚の画像が順に切り替わり
それぞれ違うToastテキストが出るアプリを作った。

package com.example.rswitch;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//boolean ブーリアン  trueかfalseが入る型
//isShowing 画面に表示されているか判定

//画像re1,re2 は画面に表示されているとコンピューターに判定させる
boolean re1IsShowing = true;
boolean re2IsShowing = true;

public void fade (

元記事を表示

VSCodeにThymeleaf用のスニペットを作ろう

#はじめに
VSCodeでのユーザースニペットの記事は調べればあるが、Thymeleaf用のものがなく、VSCodeのプラグインでもいい感じのものがなかったため備忘録的に書いておこうと思う。
※検証環境はmacOS Mojave 10.14.16
## スニペットとは
直訳すると「切れ端」や「断片」となるが、要は呼び出したいものに名前を付けて簡単に呼び出せるようにしたものということ。
#早速試してみる
「Shift+Command+p」を押すと、画面上部に検索画面が出てくるので`user`などと打つと「Preferences: Configure User Snippets」が出てくるからこれを選択。
スクリーンショット 2020-01-17 6.17.10.png
次に、言語選択画面が出てくるので今回は`html

元記事を表示

Spring Boot/SecurityでOAuthクライアントを実装してみた(LINE連携)

####1. 認可サーバ設定(LINE)
LINE Developers:
https://developers.line.biz/ja

・Channel Type: LINE Login
・App Types: Web app
・Callback URL: http\://localhost:8080/redirect (認証後のリダイレクト先URL)

####2. クライアント実装(Spring Boot/Security)
2-1. 依存ライブラリの追加

“`xml:pom.xml

org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-sta

元記事を表示

AtCoderでコード提出したら速攻つまずいた。

##はじめに
今までエンジニアとして働いてきたのですが、主に上流工程ばかりで、実装が殆どできずやばいと思って、競技プリグラミングやり始めました。なんとか一問解きましたが、そこでつまずいたことを備忘録として載せます。

今回はデータ入力の`Scanner`について書きます。

##挑戦した問題
Atcodeの過去の得点100の問題…つまり簡単な問題です。

https://atcoder.jp/contests/abc042/tasks/abc042_a

##提出1回目

色々なサイトを見ながら四苦八苦しつつもなんとかコーディングし、vscodeのターミナルから実行して想定通りの結果を得ることができました。以下がコード内容(おそらく有識者からみたら、汚いコードですがご容赦を。。)

“`
public class Main {
public static void main(String args[]) {
String answer = “YES”;
String[] haiku = args;
int sum = 0;

元記事を表示

Javaの<>ってなんだ?

#導入
こんにちは。けちょんです。
**皆さん、ジェネリクス使ってますか?**
私は今日初めて学びました。
というか今まで見て見ぬ振りしてましたが、ついに学ぶ場に出会いました。

##ジェネリクスと出会う場面
一番出会うのは、リストだと思います。
以下のような宣言したことあるかと思います。

“`
ArrayList list = new ArrayList<>();
“`

可変長な配列ということしか私は知りませんでした。
この<>を使うクラスをジェネリッククラスと言います。

##どういう役割なの?

“`
ArrayList list
“`
まずこの部分。
ArrayListはそもそもどんなクラスかというと、**複数の要素を配列のように保持するクラス**です。
Stringに限らず、様々な型のオブジェクトを格納できます。(一種類だけだけど。)
で、今回Stringを格納すると定めているのが上の宣言です。

“`
new ArrayList<>();
“`
次にこの部分。<>の中が空になってますが、これは省略してるだけです。(左辺のStr

元記事を表示

Java13におけるJavaFXの環境構築

# 概要
MacBookProを購入したためJavaFXの環境構築をしました。
# 環境
* java 13.0.2
* zsh 5.7.1 (x86_64-apple-darwin19.0.0)
* MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)

# 手順
1. Javaのインストール
2. JavaFXのインストール
3. 使いやすくする
4. PATHを通す
5. ラップする

##Javaのインストール
[公式サイト](https://www.java.com/ja/)からファイルをダウンロードし、その後インストールします。詳細な指示がサイトに乗っています。
## JavaFX
[公式サイト](https://openjfx.io/)のダウンロードページからSDKの方をダウンロードします。そのファイルを、今回は`/Library/Java/JavaVirtualMachines/`の下で展開しました。
##使いやすくする
この状態でも、例えばコンパイルなら

“`
$ javac –module

元記事を表示

研修でよく出てきそうな●とか■で図形描画10連発(Java)

## (共通部分)

“`java

package test;

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num2 = scan.nextInt();
String square = “■”;

// コード

}
}
“`

**スクショは、全て入力値が9の場合です。**

## パターン1

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180727/0e965464-88d0-fb89-20fd-175f09e05ef8.png)

元記事を表示

macOS に jenvをインストール、設定する

2020/01/25時点で他のQiita記事が古くてちゃんと動作しない&公式ドキュメントと違うので記述

# 前提

## 環境
macOS Mojave 10.14.6で確認

# ~/.jenv を作成する

“`
mkdir ~/.jenv
“`

# jenvのインストール

## 1. homebrewを利用する場合

“`
brew install jenv
“`

## 2. git からcloneする場合

“`
git clone https://github.com/jenv/jenv.git ~/.jenv
“`

### 2-1. bash

“`
echo ‘export PATH=”$HOME/.jenv/bin:$PATH”‘ >> ~/.bash_profile
echo ‘eval “$(jenv init -)”‘ >> ~/.bash_profile
“`

### 2-2. zsh

“`
echo ‘export PATH=”$HOME/.jenv/bin:$PATH”‘ >> ~/.zshrc
echo ‘eval

元記事を表示

Java勉強始めたてによる二次元配列

自分用メモ
##参考にはなりませんよぉ~
####Javaに触れつつ持ち合わせてる知識だけで二次元配列を考えてみる
今回は5行5列の二次元配列に1~5のランダムな数字をぶち込んで表示させた

やったこと
二次元配列の宣言
    ↓
1~5のランダムな要素を代入  
    ↓
改行しつつ表示させるのを5回繰り返す
みたいな

“`java

package sample;

public class sample {

public static void main(String[] args) {

String sep = System.lineSeparator();

int x = 6;
int y = 6;

int[][] array = new int [x][y];

for(int i = 1; i < x; i++){ for(int j = 1; j < y; j++){ array[i][j] = new java.util.Random().nextInt(5)+1; System.out.pri

元記事を表示

Javaのequalsは結構気持ち悪い

#導入
こんにちは、けちょんです。
**Java書いてますか?**
そんな私はここ数か月コーディングしてません。
焦ってJava goldの勉強を始めました(今日から)
その際気持ち悪かったことがあったので紹介します。

#なにが気持ち悪かったか
皆さん、文字列を比較する際、どう比較しますか?

##素人プログラマの場合
“`
String str1 = “test”;
String str2 = “test”;
if (str1 == str2) {
System.out.print(“same”);
} else {
System.out.print(“diff”);
}
“`
はい、だめですね。
こんなコード書いたら怒られます。はい、私です。
演算子である”==”はオブジェクトのメモリアドレスを比較します。

異なるオブジェクトは基本的に異なるメモリアドレスを保持します。
今回比較したいのはオブジェクトの持つ文字列であるため、意図に反しています。

**が、この場合は”same”が出力されます。**
String自体が気持ち悪いため、注意が必要です。
本題ではないし、詳し

元記事を表示

Java14でdata class的な機能が追加されるらしい

JavaでフィールドとコンストラクタとGetter(場合によってはSetter,equals,toString)しか持たないクラスを書いたことがある人は多いと思います.そのようなクラスはデータクラスと呼ばれれています.
場合によっては似たようなクラスを大量に書かなければならないといけず,いくらIDEのメソッド生成機能を使っても煩わしいことこの上ないですよね.
lombokを使うと多少は軽減されるが,IDEの設定などをしないといけない場合も多く,面倒であることは変わりません.

そんな中,この問題を解決するような機能がJava14で追加されるらしい.

## Java14の新機能

Java14では`Record`なるものが導入されます.
https://blogs.oracle.com/javamagazine/records-come-to-java

使い方は,データクラスにしたいクラスを`class`ではなく`record`と宣言するらしい.

### 使用例
使用前

“`FXOrderClassc.java
public final class FXOrderClassic

元記事を表示

SendGrid Javaライブラリの、メール配信失敗時の実装を確認した話

## 前置き
JavaでWebアプリケーションを作成しています。
システムからメール配信を行うため、[SendGrid](https://sendgrid.kke.co.jp/)を利用しているのですが、なんらかの原因でメール配信が失敗した場合に、想定していた後処理がコケていたので備忘録として記載します。
~~すべては前任者の「エラー時にもResponseで結果を返してくるだろう」という思い込みから発生した実装でした。~~

## SendGridを使用してメール配信処理を作成
build.gradleに[SendGrid Javaライブラリ](https://github.com/sendgrid/sendgrid-java)をプロジェクトにインストールしメール送信メソッドを作成。
SendGridが400番台のエラーを返してくる場合はこちらから送ったリクエストパラメータの不備やリクエスト超過のためリトライは行わず、ログを残してフロント側にエラー情報を返して処理を終了します。
500番台の場合はSendGridサーバにエラーが発生している状態のため、2〜3度リトライを行うように作成し

元記事を表示

DBUnitの空文字列とか日付とか使いづらいので直して使う

## 1. はじめに
Java+RDBMSの開発プロジェクトで、単体テストツールにDBUnitを使用するケースは未だ(2020年)に多いと思います。
DBUnitはDBの初期データと実行後のアサーションデータをxls形式やCSV形式を利用できることで非常に便利かつ開発省力化に有効なツールですが、Excelのデータ形式やPOIの仕様の問題で若干使いづらい点があります。

具体的には件名で挙げた通り、可変文字列型(VARCHAR型)の空文字列とNULLを分別できない点と、日付型(DATETIME、TIMESTAMP、DATE、TIME等)の値を正確に設定できない問題があります。

本稿では、この対策方法を記述します。
なお、本稿でのDbUnitのバージョンは2.5.4を使用しています。

## 2. DBUnitはどうなっているのか?
### 2.1 セル情報の読み込み
DBUnitでは`XlsTable`クラスの`getValue(int row, String column)`メソッドで、Excelのセルの値を取得してDBに設定する値に変換しています。

“`java:XlsTabl

元記事を表示

libGDXでandroidアプリのチューニングをした話

##はじめに
もう9年前。iOSアプリが日本ランキングの1位になった。
[iOSソリティアV](http://itunes.apple.com/jp/app/soritiav/id341532096?mt=8)
さりげなく自慢:relaxed:

調子に乗ってandroidアプリも作った。nativeで作った。
nativeで当時android2.xなので、SurfaceViewを使った。
[androidソリティアV](https://play.google.com/store/apps/details?id=jp.co.projapan.solitaire)

アニメがいまいちだったけど:sob:、ちゃんとできた。
フレームレートがちょっと低かった。

android/iOS共に現在10周年記念中。

数年前、チューニングしたいな、と思った。
iOSとソース一本化
したいけど、一本化するにはやることが多すぎる・・・。

うーん、GLSerfaceViewとかか。めんどくさそうだぞ。しかもよくなるか保証がない。

そんなとき、こんな記事が
[Android StudioでlibGDX

元記事を表示

Java備忘 LocalDateを使ってみた

##はじめに
Javaで○日以上古いファイルを検出するというプログラムを書く機会があったので、備忘として残しておく。
あくまで一つの例として。

##LocalDateを使う
Dateでも可能だが、より新しいLocalDateを使ってみる。

“`java
Long lastModified = targetFile.lastModified();
LocalDate lastDate = Instant.ofEpochMilli(lastModified).atZone(ZoneId.systemDefault()).toLocalDate();
“`
これでファイルクラスで宣言した対象のファイルから最終更新日を取得する。
エポック時間をLocalDate型に変換しているイメージ。

“`java
LocalDate daysBefore = LocalDate.now().minusDays(5);
“`
LocalDateクラスのnow()で本日の日付を取得する。
今回は5日前の日付を対象にするとして、minusDays(5)で取得することができる。

“`j

元記事を表示

Eclipse JavaからSQLファイルに飛ぶ(ジャンプ)方法

# Eclipse java DomaSQLでJavaからSQLファイルに飛ぶ方法
SQLファイルとリンクしている関数を右クリック > Doma > Jump To Sqlファイル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384142/41cfb2c7-905e-9a50-d256-724b37223928.png)

メニューに出ない場合はDomaToolがインストールされていない可能性あり。
以下に手順を示す。

# DomaToolのインストール
1. ヘルプ > 新規ソフトウェアのインストール
2. `http://eclipse.seasar.org/updates/3.5/` > 追加
3. `Doma`にチェックし、次へ
4. インストールを完了する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384142/222fe2b4-d376-2ec3-1615-c3398

元記事を表示

Azure EventhubsにSASトークンを使う方法(Java)

# はじめに

こんにちは、とがりと申します。
SREをしています。

# なぜ書いたか

Azure Eventhubsを使っていて調べても全然ドキュメント出てこなく、詰まったから。
本記事はJavaの環境が既に用意されている人を対象にしております。(maven, gradle, etc.)

# 本題

### やりたいこと

######アンドロイドアプリからAzure Eventhubsにデータを送信
Shared Access Signature 用いてEventhubsにアクセスしたい。[1](https://docs.microsoft.com/ja-jp/azure/event-hubs/authenticate-shared-access-signature)
しかし、SASを持っていればEventhubsに対して半永久的にアクセスすることができてしまうため
クライアントサイドに配置するのはセキュリティの観点で不安である。
何かいい方法がないかと探していたところSasからTokenを生成できるという情報を得た。
なのでSasTokenを用いてEventhubsにデータ

元記事を表示

アルゴリズム 体操18

#Reverse k Elements
単一リンクリストと整数「k」が引数として渡されます。リストのk要素ずつ反転させるアルゴリズム体操。
k <= 1の場合、リストは変更されません。k >= n(nはリンクリストの長さ)の場合、リンクリスト全体を逆にします。

##例
以下は、k = 3で、3要素ごとに反転した例です。
![Screen Shot 2020-01-23 at 9.51.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405022/6e6d8cbe-00ad-b2bd-3a57-d0efffdf6ecf.png)
以下は、k = 4で、4要素ごとに反転した例です。
![Screen Shot 2020-01-23 at 9.51.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405022/93ab81a9-c111-effc-9f0b-6a5ab257c679.png)

##Solution

元記事を表示

ArrayListのnewとclear()では挙動が異なる

地味にハマってしまったので。

# はじめに
Javaでリストを扱う時、よくArrayListをnewして使うと思います。

“`hoge.java
List list = new ArrayList<>();
“`

そのArrayListを使い回したいという時にGoogle先生に聞いてみると、

1. newする
2. ArrayList.clear()メソッドを使う

の2通りをオススメされると思います。そして、両者の違いについては特に触れられず、強いて言えば「実行速度が違うよ」と言っていくらかQiitaの記事がヒットすると思います。

しかし、実際のところは速度だけではなく、挙動にも異なる点があります。

# newとclear()の違い
1次元リストから要素を2つずつ取り出して2次元リストを作る場合を想定します。

以下にサンプルコードを示します。
まずはnewした場合からです。

“`sample.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Lis

元記事を表示

匿名クラス(stream api 導入を目指して)

## 目的
stream apiを学ぶ上では匿名クラスの設計及び実装の考え方の理解が不可欠だと感じた.
メソッド参照,関数型インターフェース,ラムダ式,ジェネリクスを用いた設計(インスタンススコープ及びメソッドスコープ,PECS原則に基づいた設計)学習前の入口となる匿名内部クラスについて学ぶ.

## 入れ子クラス

ブロック({})内で宣言されたクラスを「入れ子クラス」(Nasted Class)と呼ぶ
>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/497973/ceed2433-13b0-7da7-bf5a-be46fe12a583.png) 入れ子クラスのイメージ図.

“`NastedClazzSample.java
public class NastedClazzSample {
static class StaticClazz {} //static member class

class MemberClazz {} //menber class

元記事を表示

OTHERカテゴリの最新記事