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

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

[ev3×Java] インテリジェントブロックボタン

この記事はJavaでev3を操作してみたい人のための記事です。
今回はインテリジェントブロックボタンを使っていろいろな操作をしていきたいと思います。

#目次
0 . 用意するもの
1 . Buttonクラスを使ったプログラム
2 . Keyインターフェースを使ったプログラム

#0.用意するもの
◯ ev3(タンク)
◯ パソコン(VSCode)
◯ bluetooth
◯ microSD
◯ [API Documentation](http://www.lejos.org/ev3/docs/overview-summary.html)(これをみながら進めていくのがオススメです。)

#1.Buttonクラスを使ったプログラム

####1-0 . 特定のボタンを押したら~するプログラム

◯上のボタンを押したら音がなり、右のボタンを押したらループを終了するプログラムです。

“`button00.java
import lejos.hardware.Button;
import lejos.hardware.Sound;

public class B

元記事を表示

【Java】 特定の数値を除いた乱数を取得する方法

綺麗なコードではない気がしますがこれからも使いそうなので備忘録用として載せました。

“`Java:main.java
import java.util.ArrayList;
import java.util.Random;

public class Main {

public static void main(String[] args) {
Random rand = new Random();
String i;
// 除外したい数値を格納する
List exList = new ArrayList();
exList.add(“2”);
exList.add(“5”);
exList.add(“8”);

do {
i = String.valueOf(rand.nextInt(10)+1); // 1~10までの乱数を生成し文字列に変換
} while (exList.contains(i)); //除外リストのいずれかの

元記事を表示

続:OOPのたとえ話が(略

# 熱いぜ
以前に[こんな記事](https://qiita.com/pff01632/items/bf4b58c92d6047ac2e67)を書いたのだが、久しぶりにOOPネタでトレンドが
~~炎上して~~ 熱く燃えているではないか。そこで、あれからまた少し考え
を整理した結果として、自分の考える抽象クラスとインタフェースは
こんな感じ!という考え方を表明してみたい。あくまでも自分の考えは
こうだ、という表明である。思考はJava的で。
※コードはビルドしてないし概念提示用のためかなり適当です。
# インタフェースとは
JavaのRunnableインタフェースがわかりやすいが、実装したい機能を表す
ハンドル(車のハンドルやバスケットの取手やドアノブのイメージ)だと
考えている。Runnableインタフェースで言うならば

– スレッドとして実装したいメソッドを表現するインタフェース
– スレッドの実装は要求ごとに異なるので好きに実装すればよい

という非常に便利な機能を提供してくれている。実装されているクラスが
何者かは知らなくても、インタフェースの機能は保証されると考えられる
ので

元記事を表示

【Java】配列とArrayListの違いについて

###初心者には同じにしか見えない…
**「Arrayってそもそも配列ですよね?ArrayListもArrayってあるから配列だよね!?」**

これは僕だけではないと思います。

使用していく中で経験的にわかっていくとは思いますが、ちゃんと理解していないと困ることもあるかと。

自分なりの理解をメモしておきますので、初心者の方に対して少し違いがイメージできるようになる助けになればと思います。

###そもそもクラスって?

* クラス
* データ(変数)
* 処理(メソッド・関数)

要は**データと処理を一まとまりにして扱うよ**というもの。

これが最初はわからなかったし、今でもそんなに便利なものなのかどうかもよくわかっていませんが。。。

よく車とかで説明されたりしますが、結局**「言ってることはわかるけど。。。」**という消化不良状態でした。

しかし、結局は**テンプレ**だと考えればすっきりしました。

###クラスはテンプレ、インスタンス化はテンプレの利用

初心者にはクラスとかインスタンス化しないと使えないとか言われてもなんのこっちゃという感じ

元記事を表示

JNIのライブラリ導入時にハマった事象

# はじめに
現在参画している案件でJNIの外部ライブラリを導入する際にClassLoader問題にハマったため、備忘録として解決方法を残したいと思います。

# 環境
Java8
wildfly-8.1.0.Final

# JNIとは
Java Native Interface (JNI) は、Javaプラットフォームにおいて、Javaで記述されたプログラムと、他のプログラミング言語(たとえばCやC++など)で書かれた、実際のCPU上で動作するコード(ネイティブコード)とを連携するためのインタフェース仕様である。
(Wikipedia:https://ja.wikipedia.org/wiki/Java_Native_Interface より引用)

# 導入ライブラリについて
メイン処理がC++で実装された外部ライブラリで、JNIを利用してJavaに組み込もうとしていました。

# ハマった点
ビルド資材を作成した際に以下のような構成にしていました。

“`terminal
service.ear
 ├ lib
 │ └ jni.jar ← ここにJNIのjarを配置
 ├ M

元記事を表示

Webアプリ開発の記事まとめ

#はじめに
DreamHanksの松下です。新規でWebアプリの開発を行いました。
こちらの記事は、その記事のまとめです。

#連載記事まとめ
[【第一回】Spring-MVCフレームワークのプロジェクトの作り方](https://qiita.com/DreamHanks/items/a148d9b96343f7a535d1)

【作成予定記事】
・mybatisのインストール方法
・myBatisジェネレータでオブジェクトを作る

#補足記事

【作成予定記事】
・get,postの違い
・mavenでのmybatis実行方法
・maven(ビルドツール)の解説
・xmlファイルの解説

元記事を表示

【第一回】Spring-MVCフレームワークのプロジェクトの作り方

#はじめに
DreamHanksの松下です。今回はSpring-MVCフレームワークのプロジェクト作成の手順を解説していきます。

今回のWebアプリ開発ではDBアクセスのフレームワークはMyBatisを使用します。

[連載記事まとめ](https://qiita.com/DreamHanks/items/7df703a509ef22f64d2c)

#インストールするもの解説
###ツール・環境関係
 下記のものを用意する。
 ・eclipse2020
 ・jdk:1.8
 ・tomcat:8.5
 ・mysql:8.
 ・A5SQL

###eclipseでダウンロードするもの
 下記のものはeclipse→ヘルプ→マーケットプレイスからダウンロード
 ・Spring4
 ・Spring Tools 3 Add-On for Spring Tools 4

#新規プロジェクトの作り方
①新規プロジェクトを選択

②Springと検索→「Springレガシー・プロジェクト」を選択→次へ
 
![無題.png](https://qiita-image-store.s3.ap-no

元記事を表示

【AWS x Java】DynamoDB StreamsをKinesis Client Library (KCL) で処理する

# はじめに
実案件でDynamoDB StreamsをKinesis Client Library (以下KCL) で処理する機会がありましたので、KCLが実際にどういう挙動をするのか、それを踏まえてどのような実装にしたのか紹介したいと思います。

![3c1c3976-0a28-5cb8-3eab-b1ec4ac37f5c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555899/ed41f64b-0e36-118b-0af9-cdbe54f05325.png)

## 今回やりたかったこと
[BookLive!](https://booklive.jp/)のある機能ではDynamoDBを使用しています。
このDynamoDBのデータを、データ追加後できるだけ早いタイミングでRedshiftに転送する必要が出てきました。
現状のテーブル形式を踏まえ様々な検討をした結果、DynamoDB Streamsを設定し、追加されていくデータをいわゆるストリームとして扱うことでRedshiftに持っていくこ

元記事を表示

【Java】日付の期間重複チェックサンプル

# 概要
日付で期間を持ってるデータを登録するときにすでに登録してある期間と重複しないようにしたい。
LocalDateを使ったJavaのサンプルがあまり見当たらなかったので公開します。

# 環境
– Java 1.8
– SpringBoot 2.2.1.RELEASE
– thymeleaf 3.0.11.RELEASE

# 期間が重複するパターン
日付の期間が重複するパターンは全部で4つ。
![Qiita用画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265229/f75d6dcf-99ee-6348-7c16-33354dc2cd73.png)
1. 前半がかぶるパターン(①の終了日と緑の開始日が同じも含む)
2. 後半がかぶるパターン(②の開始日と緑の終了日が同じも含む)
3. 全部かぶるパターン(開始日と終了日が全く同じも含む)
4. 一部がかぶるパターン

全パターンを網羅できる条件式は下記の通り。

“`java:条件式
緑.開始日 <= 黒.終了日 && 緑.終了日 =>

元記事を表示

@Slf4j など外部ロギングAPIを用いている時にログの出力のロガーの挙動をテストする

# 背景
@Slf4j など外部ロギングAPIを用いている時にログの出力のログをテスト時に確認したい。

# 目的
ログをモック化してログの出力をテストコードで制御できるようにする

コードをざっと確認したい人は”[サンプルコード](https://qiita.com/yusha3/items/c9576bbe8b6cc5b27897#%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89)”の章で確認できます。

# アプローチ
手順の流れ
1. ArgmentCaptor の定義
2. 対象のクラスのLoggerを定義し、モックのアペンダーをいれる
3. ロガーモックインスタンス指定のコールをキャッチする。

## 1. ArgmentCaptor の定義

“` java
@Captor
private ArgumentCaptor captorLoggingEvent;
“`

ArgmentCaptor はmockito のクラスでスタブ化したメソッドがちゃんと呼

元記事を表示

JavaにおけるfinalとImmutableの違い

#JavaにおけるfinalとImmutableの違いって?

最近GuavaのImmutable Listを使う機会があったのですが、ふとImmutableとfinalの違いってなんだ?と疑問になって調べてみました。

##Immutableの特徴
・オブジェクトの値そのものを変更することを禁止
・参照先を変更することは可能

##finalの特長
・参照先の変更をすることを禁止
・変数の値そのものを変更することは可能

では、JavaではImmutableで代表的なStringとMutableなStringBuilderを使って検証してみます。

“`Java
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
final String str = “apple”;
final StringBuilder sb= new StringBuilder(“ringo”);

str = str + “ringo”; //コンパイルエラー。Strin

元記事を表示

Java開発リンクまとめ

#Java

Java sample
http://java2s.com/

http://www.tohoho-web.com/

socket
http://manabu.quu.cc/up/6/e62tcpjava.htm

Listener
https://docs.oracle.com/javase/tutorial/essential/io/notification.html#try
https://www.javaworld.com/article/2077351/java-se/events-and-listeners.html
http://www.vogella.com/tutorials/DesignPatternObserver/article.html

JNI
https://blog.goo.ne.jp/xmldtp/e/75720fd5daebcfd6d6b77292048f6345

DB
https://ts0818.hatenablog.com

元記事を表示

メソッドを解説してみた

## 初めに
– この記事を開いてくれてありがとうございます.
– 教え方が下手な自分がなんとかまとめたものなので,多めに見てください.
– 要望,指摘あればどんどん書いてください.
– それでは,長らくのお付き合いお願いします.

## そもそもメソッドとは
#### 10人のテストの平均点、最高点、最低点を表示してください。
“`java=Question_11.java
package Question_04;

public class Question_11 {
public static void main(String[] args) {
int[] english = {98,80,78,85,65,86,90,94,70,92};
int high = english[0];
int low = english[0];
int avg = 0;
for(int i = 0;i < english.length;i++) { if(high <= english[i]) { high = english[i]; }else i

元記事を表示

【Eclipse】初心者でも最初に覚えた方が良さそうなショートカット厳選5つ【Mac】

###いろいろショートカットはあるけど、まずはめちゃくちゃ頻度が高いものをマスターしてから少しずつ数を増やす

####まずは5つ

ショートカット|説明
:–|:–
command + D|行の削除
option + ↑↓|行ごと移動(複数行可)
command + /|コメントアウト
control + .|単語補完
option + command + R|同じ変数名を同時編集(リファクタリング)

まあこのくらいを慣れて指が勝手に動くようになったら次のショートカットを選んで練習という流れが個人的には良いかと。

**コメントアウト**はだいたいのエディタで同じショートカットキーが割り当てられているっぽいです。

**行の削除**も同じものが多いと思いますが、VSCodeは違ったかと。。。

**行ごとの移動**も他のエディタでも同じだと思います。

**いきなりたくさん練習しても、考えてしまうのでとりあえず片手くらいの数を無意識にできるようになってから次にいこう!**

ショートカットキーは考えて使うものではないですし。

####単語補完でtypoを減らす
個人的には変

元記事を表示

Javaの型変換(StringとかintとかDateとかCalendar他)

普段開発とかやってると、ぽろりと忘れてたりするので忘備用。
思いつき次第、加筆修正。

・[文字列⇔数値](#文字列数値)
・[文字列⇔文字列](#文字列文字列)
・[日付型⇔日付型、文字列](#日付型日付型文字列)

#文字列⇔数値
###String ⇔ int

“`java:qiita.java
//int → String
int num = 0;
String intToString = String.valueOf(num);

//String → int
String number = “123”;
int stringToInt = Integer.parseInt(number);
“`

double型、float型、long型からのString変換も同様に行えます。
とりあえずString.valueOf()に放り込んでおけばいい……はず。

補足:(2020/09/11:修正)

“`java:qiita.java
String number = “123”;

//String → double

元記事を表示

SelectItemのListをソートする方法

選択肢を設定するのによく使うSelectItemのList。データベースから取得した値を使ったりすると並べ替えをしたいことがある。そんな時用。

– 環境
– CentOS Linux release 7.8.2003 (Core)
– openjdk version “11.0.7” 2020-04-14 LTS
– JSF 2.3.9

例えばこんなSelectItemのListがある場合のこと

|value|label|
|:-:|:-:|
|1|いぬ|
|3|さる|
|0|くま|
|2|ねこ|

“`java
/** SelectItemのリスト. */
@Getter
private List items;

/** SelectItemのリストを設定する. */
private void setItems() {
this.items = new ArrayList();
this.items.add(new SelectItem(1, “いぬ”));
this.items.

元記事を表示

Javaの変数宣言の文について

# Java 変数宣言
本日からJavaの学習を始めましたので、アウトプットがてら読んでくれた方の参考になれば嬉しいです。

## 先ず変数、及び変数宣言の文とは?
変数とはデータを格納するためにコンピューター内部に準備する箱のような物。
つまり変数宣言とは、コンピューターに対して「新たな変数を用意せよ」と指示する文のこと。

## 変数宣言の文
“`
型 変数名 ;
“`
型とは変数に入れることができるデータの種類のこと。

## よく使われる型の種類(他にもあるよ)

|分類|型名|格納するデータ|
|:—:|:—:|:—:|:—:|
|整数|int|普通の整数|
|少数|double|普通の小数|
|真偽値|boolean|true か false|
|文字|char|1つの文字|
|文字列|String|文字の並び|

## 使用例
今回は私の愛車を紹介がてら、例にしたいと思います。
[twitter](https://twitter.com/akiiiiio_19/status/897790093368320001/photo/2)

|分類|型名|格納す

元記事を表示

Python基礎備忘録その2

#記事概要
Pythonを少しでも読めるようになってみようと思い、[参考書](#参考文献)に沿って学習した備忘録になります。
Javaと比較して自身が気になった点、便利と感じた点をまとめております。
その1は[こちら](https://qiita.com/tk10/items/12a3c09b0c0f9a1499f7)
※かなり基礎的な内容になります。

#関数定義
pythonはメソッドのオーバーロードが出来ない代わりに、デフォルト引数を設定可能。

引数無し
def doFunc():
  関数処理

引数あり
def doFunc(a, b, c, …):
  関数処理

#####例
“`java:java
//引数無し
void doFunc1() {
print(“関数が呼び出されました。”);
}

//引数あり
void doFunc2(a, b) {
print(“a + b = ” + (a + b));
}

//return あり
int

元記事を表示

【Eclipse】Javaの開発環境として導入の流れ(それに際していろいろ調べたこと)

###そもそも知らないことばかり
参考にしたページ。
[Eclipse、はじめの一歩 – インストールから便利な日本語化プラグインの導入まで](ttps://employment.en-japan.com/engineerhub/entry/2020/03/19/103000#IDE%E3%81%A8Eclipse)

ふ〜ん、くらいで読めばいいんでしょうけど、なんかいろいろ気になる用語が出てきたので、しっかり理解したいので自分の言葉でまとめていきたいなと思いました。

###Eclipseとは
IBMがJava開発ように作成。2001年にオープンソース化された。

####**オープンソースってなに?無料ってこと?**
まあそういうことです。無料で使えるようになったということ。そしてそのソフトウェアのソースコードも見れるし、改良も自由にできるということ。
**Wikipedia的**な感じですね。

####IDEのデファクトスタンダードってなに?
de facto standard
`de facto`は`事実上、実際には`というラテン語
つまり**事実上の標準**という意味ですな

元記事を表示

JavaはPowerPointドキュメントの背景色と背景画像を設定します

Powerpointドキュメントを作成する場合、背景が非常に重要です。背景を統一させたら、Powerpointのプレゼンテーションが 美しく見えるようになります。この記事では、JavaアプリケーションでFree Spire.Presentation for Javaを利用して、無地の背景色とグラデーションの背景色を設定や、PowerPointスライドの背景画像を追加する方法を紹介します。

**JARパッケージのインポート**
**方法1:** [Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)をダウンロードして解凍したら、libフォルダーのSpire.Presentation.jarパッケージを依存関係としてJavaアプリケーションにインポートします。

**方法2:**Mavenリポジトリから直接にJARパッケージをインストールしたら、pom.xmlファイルを次のように構成します。

“`java

元記事を表示

OTHERカテゴリの最新記事