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

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

文字の切り取り方

Javaで標準入力で入力した文字をsubstringとcharAtでとる方法です。

substringで1文字ずつとる場合

“`Java
import java.util.Scanner;

public class flora2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“floraの文字を入力してください”);
String ans = sc.nextLine();
int nagasa = ans.length();
for(int i=0;i

元記事を表示

【Java発展学習14-15日目】設計原則とGoFデザインパターン、モジュールシステム

# 6つの設計原則

| 分類 | 設計原則 | 内容 |
|:–|:–|:–|
| コード記述 | DRY(Don’t Repeat Yourself) | 繰り返さない |
| | PIE(Program Intently and Expressively) | 意味・意図の明確化 |
| クラス設計 | SRP(Single Responsibility Principle) | 単一責任原則 |
| | OCP(Open-Closed Principle) | 開放閉鎖原則 |
| クラス間連携 | SDP(Stable Dependencies Principle) | 安定依存原則 |
| | ADP(Acyclic Dependencies Principle) | 非循環依存原則 |

## PIE
`PIE`では、「コメント文を取り除いても可読性の高いコード」を目指す。
具体的には、以下の3つの手法をとる。

> 1. 変数名で**役割・目的**を表す
> 2. **マジックナンバー**をfinal定数で命名
> 3. 制御構造の深い処理への命名

元記事を表示

Couchbase Java SDK解説:分散トランザクション API解説および包括的な利用例

## はじめに

Couchbase SDKを使った、Javaプログラミングにおけるトランザクションの扱いを具体的なAPIコールに即して解説します。

本記事の関連情報として以下をご参照ください。

[Couchbase Java SDK解説:分散トランザクションの内部メカニズム](https://qiita.com/yoshiyuki_kono/items/2d428b16b224b8c01239)

[Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する](https://qiita.com/yoshiyuki_kono/items/d7eb2b9553d858c7cb93)

[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuki_kono/items/4efb2f1f5a03051e28c5)

## ドキュメントへのK/Vアクセス

#### ドキュメントの取得
ドキュメントを取得するには、`get`と`getOptional`の2つのメソッドがあります。

元記事を表示

“指定されたコンパイラー準拠は x.y ですが、JRE zz が使用されています”の解消

Eclipse でプロジェクトを作ると
“指定されたコンパイラー準拠は 1.5 ですが、JRE 11 が使用されています“
みたいなWarningが出ることがある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414729/2adac0fe-e55c-4f48-3bb3-5170e50c6640.png)
これはまんま、このプロジェクトでコンパイル/ビルド用に指定した“javac“のバージョンが“1.5“になっているが、実際に環境にインストールされているJavaのバージョンは“JRE 11“ですよと言っている。
実際問題、Java 1.5 でコンパイルしたコードは Java 11 でも Deprecated になった API さえ利用していなければほとんどの場合動作すると思う。けれど Warning が出たままだと気持ち悪いし、古い API を間違って使ってしまうのも嫌なので、実行環境の JRE のバージョンとビルド用の javac のバージョンを合わせる方法について以

元記事を表示

ArrayListの型に独自のクラスを指定するメリットって何なのさ!

備忘録的な感じです。
Javaの配列って型が固定だったりする。

“`java
int[] num;
//配列の宣言
“`
こういう書き方もできる。

“`java
int num[];
//配列の宣言
“`
型が混在した配列を扱う場合には、通常の配列だと単一の型に指定するため、そのまま通常の配列に代入して扱うことはできない。
例えばSQLでレコード1行分を取得する際、int型の`id`とString型の`name`が混在していたりする。
そうした場合に独自の配列を作る必要がある。
その場合、`ArrayList`を`List`型で宣言する。
`<>`内の型に独自のクラスを指定し、クラス内にSQLのカラムに合わせたフィールドを定義する。
そうすると下記の通り。

“`java
//Introduceクラス(実行ファイル)
package sample;

import java.util.ArrayList; //ArrayListのimport
import java.util.List; //Listのimport

public class Introduce {
p

元記事を表示

Running CICS-Java application – (5) Using JCICSX

This article is translated from the Japanese article below.
https://qiita.com/tomotagwork/items/cac290f6435453c19b7b
([google translate](https://translate.google.com/) was used.)

#Introduction
CICS Transaction Server provides a class library called JCICS for using CICS functions from Java. This is the Java version of EXEC CICS API, which allows you to call other CICS programs with LINK and access CICS management resources such as TSQ/TDQ. By using this, you can write a CICS application in Java.

元記事を表示

Running CICS-Java application – (4) Build management with Gradle

This article is translated from the Japanese article below.
https://qiita.com/tomotagwork/items/9bdef46069e1591103ba
([google translate](https://translate.google.com/) was used.)

#Introduction

CICS TS for z/OS supports running Liberty, so you can run Java EE applications on CICS.
With support for Spring Boot from CICS TS V5.3, Spring Boot applications can now run on CICS (with Liberty on CICS). Running on CICS means that you can use JCICS, which uses CICS functions, so web apps that call exist

元記事を表示

Running CICS-Java application – (3) Build management with Gradle

This article is translated from the Japanese article below.
https://qiita.com/tomotagwork/items/6fae5bd3440635ad26af
([google translate](https://translate.google.com/) was used.)

#Introduction
CICS TS V5.6 also supports Gradle as a build management tool for CICS-Java applications, along with Maven. Here, we will try build management of CICS-Java application using Gradle.

## Related articles
[Running CICS-Java application – (1) Simple application](https://qiita.com/tomotagwork/items/b3c48da3892

元記事を表示

Running CICS-Java application – (2) Build management with Maven

This article is translated from the Japanese article below.
https://qiita.com/tomotagwork/items/a487484835d4e8dd2d6f
([google translate](https://translate.google.com/) was used.)

#Introduction
It’s been a long time since I’ve been able to develop CICS applications in Java, and a lot of enhancement aroud CICS-Java functions is provided. Here, I would like to try out the new Maven support for CICS TS V5.6 (June 2020 GA).

In the example shown before, we confirmed the flow of manually building and

元記事を表示

Running CICS-Java application – (1) Simple application

This article is translated from the Japanese article below.
https://qiita.com/tomotagwork/items/aac10ad84fe83d88bb5f
([google translate](https://translate.google.com/) was used.)

# Introduction
COBOL, PL/I, and Asembler are often used as application development languages for CICS Transaction Server for z/OS, but Java has also been supported for a long time. This means that you can write CICS applications in Java. A Java class library (JCICS) equivalent to the EXEC CICS command is provided, so y

元記事を表示

Spring bootでLINE Botを作る

## 概要
LINEが配布しているサンプルコードの[line-bot-sdk-java](https://github.com/line/line-bot-sdk-java)を使って、Spring bootでLINE Botを作る手順。このサンプルコードは、LINE Botを作る上で必要なコードが一式揃っているので、これを元に拡張していくと効率がよいと思われる。

## LINE Channelの作成
以下を参考にChannelを作成する。
[ボット用のチャネルを作成](https://developers.line.biz/ja/docs/messaging-api/getting-started/)

## herokuでアプリを作成
herokuでアプリを作成する。
https://signup.heroku.com/

### herokuに環境変数の登録
[LINE Developersコンソール](https://developers.line.biz/console/)で、Messaging APIチャネルのチャネルシークレットとチャネルアクセストークンを確認し、hero

元記事を表示

ApachePOIを色々連携する話

こんにちは
======
先日ApachePOIを導入→出力するという内容を投稿したものですが
あれでは全然実用性がないジャナイカ
もっといろいろ連携したいジャナイカ
HTMLやJspの内容を出力したいジャナイカ

ということで
本日の議題はこちら

データベースから引っ張ってきた値を
jspでtableタグに放り込んで表を作り、
それをさらに出力できるように
あわよくばスタイル設定までしちゃおう!!

のコーナー

はい
急になんか複雑な感じに見えてきます
でも大丈夫です
プログラミングを初めて4か月目の僕でもできました
つまりはサルでもできるはおろか
犬でもできます
ワン。

ということで早速前提条件を揃えていきましょう
この記事を見ている方からしたら
データベースから値をとってきて、jspにsessionで送り
jspでEL式で表を作るなんてことは朝飯前はおろか
朝起きてうがいするより前にできることでしょう

この時のポイントとして、送りたい表を作っている部分を
formタグで囲いましょう
今回はボタンを押すとXlsx形式でDLできるようにしたいので

“`jsp:そういうやつ

元記事を表示

Couchbase Java SDK解説:分散トランザクションの内部メカニズム

## はじめに

本稿は、分散トランザクションの内部メカニズムについて概観を与えることを目的としています。

本記事の関連情報として以下をご参照ください。

[Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する](https://qiita.com/yoshiyuki_kono/items/d7eb2b9553d858c7cb93)

[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuki_kono/items/4efb2f1f5a03051e28c5)

### アクティブトランザクションレコード(ATR)

トランザクションとして実行されるアプリケーションロジックを含むラムダブロックは、トランザクションライブラリによって複数回実行される可能性があります。この場合の各実行を、ここでは「試行」と呼びます。

各試行は、ドキュメントのメタデータにエントリーを追加します。このメタデータエントリーは、アクティブ・トランザクション・レコード(ATR)と呼ばれます。エントリー

元記事を表示

[Jersey]BeanValidationで入力値検証してみる

# はじめに

Tomcat + Jersey という構成の Web アプリケーションの動作を理解するために、[Tomcat Embed](https://mvnrepository.com/artifact/org.apache.tomcat.embed) を使って実験をしていきます。
いまどきこんな構成で開発を始めることは少ないかと思いますが、レガシーソフトウェアと戦う人たちの助けになれば幸いです。

## 関連記事の一覧(予定)

– [埋め込みTomcatでJerseyを動かしてみる](https://qiita.com/atti/items/fa3843f75c4bd669059a)
– [HK2でDIしてみる](https://qiita.com/atti/items/3f6f43c5168323344427)
– BeanValidationで入力値検証してみる ← イマココ
– TomcatとJerseyでトランザクション管理してみる

## リポジトリ

https://github.com/at6ue/tomcat_embed-jersey

なお、リポジトリは `

元記事を表示

SpringBootで非同期する時の設定値をラーメン屋の行列に喩える

SpringBoot環境でマルチスレッド処理を行う機会があり、これらの設定値の意味が分かりづらかったので記載。

### 設定

“`Java
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setQueueCapacity(3);
executor.setMaxPoolSize(3);
executor.initialize();
“`

### それぞれ何の値なのか?

CorePoolSize…スレッドプール内で待機しているスレッドの初期数。

QueueCapacity…CorePoolSize分のスレッドがすべて実行中の時にタスクが投げ込まれると、既存のスレッドに対して待ちタスクが発生する。その待ちタスクの最大値。

MaxPoolSize…タスクが投げられ続け待ちタスクが最大値を超えると、スレッドが増えていく。MaxPoolSizeより多くのス

元記事を表示

Eclipse でJavaFXを使用する方法(Mac)

## 最初に
とある課題でJava FXを使用してGUIを作らなければならなかったのですが、Eclipse上でJava FX Projectを作成、起動させる方法が非常にややこしくて忘れてしまいそうだったので、健忘録代わりに記載します。

まず前提として現在のEclipseで標準となっているJavaのComplilerはversion 16です。ただ、JavaFXはJava11までしか標準で入っていないため、Java11 のフルバージョンをインストールしたら自動でJava FXが使えるようになっている、、、、という記載だったのですが、僕の場合はうまくいかなかったです。
結局、AdoptOpenJDK 11.0.11をインストールしてパスを設定ー>その後JavaFXSDK をインストール->project毎にJavaFXを設定する
方法でしかうまくいきませんでした。

# ① javaJDK11, JavaFX SDKをインストールする
まず以下の記事を参考にJava11をMacにインストール+パスの設定をしてください。
なお、JDKにはAdoptOpenJDK 11.0.11 の他にも

元記事を表示

NLP4J – Java で構文解析(Cabochaを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# CaboCha/南瓜とは
CaboCha は, Support Vector Machines に基づく日本語係り受け解析器です。

CaoboCha: Yet Another Japanese Dependency Structure Analyzer
https://taku910.github.io/cabocha/

| 項目 | 説明 |
|:———–|:————|
| 提供者 | 工藤拓 |
| 提供形式 | Cプログラム / ライブラリ |

#実行前提条件

Cabocha がインストールされていて、コマンドラインから呼び出し可能になっていること。

“`
>cabocha
今日はいい天気です。
今日は—D
いい-D
天気です。
EOS
^Z

>
“`

#Maven Dependency

“`xml

元記事を表示

NLP4J – Java で 英語の構文解析(Stanford NLPを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# Stanford NLPとは

スタンフォードNLPグループが提供する、主要な計算言語学の問題に対して、統計NLP、深層学習NLP、およびルールベースのNLPツールです。

Software – The Stanford Natural Language Processing Group
https://nlp.stanford.edu/software/

| 項目 | 説明 |
|:———–|:————|
| 提供者 | スタンフォード大学 スタンフォードNLPグループ |
| 提供形式 | Java ライブラリ |

#Example without NLP4J

“`java
package hello.stanford;

import java.util.List;
import java.util.Properties;

import edu.stanfo

元記事を表示

NLP4J – Java で形態素解析(Mecabを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# MeCab (和布蕪)とは

MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer
https://taku910.github.io/mecab/
MeCab – Wikipedia
https://ja.wikipedia.org/wiki/MeCab

| 項目 | 説明 |
|:———–|:————|
| 提供者 | 工藤拓 |
| 提供形式 | Cプログラム / ライブラリ |

#実行前提条件

Mecab がインストールされていて、コマンドラインから呼び出し可能になっていること。

“`
>mecab
今日はい

元記事を表示

JavaDoでしょうに参加した

昨日、こちらの「〈7/17〉Java 17 までの新文法をオンラインモブプログラミングで体験会」に参加した

https://javado.connpass.com/event/217537/

スライドはこちら。

https://qiita.com/gishi_yama/items/271f60cb7bb35f59009a

最初にJava17の機能についてスライドで説明、後半はモブプロを行った。

Java17のrecord機能が個人的にいいと思う。
モブプロもみんなで意見を出し合ったのが楽しかった。

元記事を表示

OTHERカテゴリの最新記事