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

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

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)と呼ばれます。エントリーの

元記事を表示

[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機能が個人的にいいと思う。
モブプロもみんなで意見を出し合ったのが楽しかった。

元記事を表示

【令和最新版】猿でもわかるJNA(Java Native Access)の使い方

JNAの日本語記事って少なくないですか?
出てきたとしても2、3年前の記事でどうにも情報が古かったり、少なかったり、今と違っていたり。これはそんな状況を一新させるための記事です。(ちなみにIDEは IntelliJ IDEA Community を使用していますが Eclipse でも大体同じ手順です)
## JNAのダウンロード
JNAの準備は簡単で`JAR`ファイルを[GitHub](https://github.com/java-native-access/jna)からダウンロードしてモジュールの依存関係に追加するだけです。(JNA Platformというのもありますが取り敢えず今は無視)
![JARファイルをインポート](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/807403/d82fe654-0b1c-be46-d0e7-012596a92506.png)
## 基本的な使い方
サンプルとして次のコードを用意しました。コンパイルに成功するとWindows標準のビープ音が鳴るはずです。

“`jav

元記事を表示

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.stan

元記事を表示

JavaParserでメソッド定義を出力する

この記事ではIntelliJ IDEA 2021.1.3 (Community Edition) Runtime version: 11.0.11+9-b1341.60 amd64を使っています。

ディレクトリ以下のjavaファイルをParseします。

javaparserを使用するには、build.gradleのdependenciesに追加します。

“`gradle:build.gradle
dependencies {
implementation ‘com.github.javaparser:javaparser-core:3.3.0’
}
“`

## コード

“`java:Main.java
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import

元記事を表示

CRUDのWebApi開発は不要!JsonでWebApiを作れるシステムを作った話

# はじめに
タイトルの通りです
定義を設定すだけで、CRUDのRESTWebapiを作れるシステムです

似たようなもので、FirebaseのRealtimeDatabaseやFireStoreがありますが
色々と制限が多く、バリデーションが難しいようだったので作ってみました

Java(Spring Boot)とMongoDBで作りました

ここで使ったシステムです
[エンジニア・プログラマにしか使えないSNSを作ってみた話](https://qiita.com/HawkClaws/items/599d7666f55e79ef7f56)

# フロー図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/911989/c9d9c3f3-5f05-30bc-cb2f-9c8204f82df6.png)

# フロー詳細

## WebApi定義を登録

管理者用WebApiを使用し、API定義を登録します

登録例
`apiUrl:APIのURL`
`apiSecret:認証に使用す

元記事を表示

OTHERカテゴリの最新記事