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

JAVA関連のことを調べてみた2021年09月11日
目次

[Kotlin/Java] KotlinのデータクラスをJava で利用するには

## 記事でわかること
KotlinとJavaが併存するプロジェクトでJavaのクラス内でKotlinのデータクラスを利用する方法を記載します。

## 背景
現在関わっているサーバーサイドのプロジェクトではJavaからKotlinへの移行を行っています。
新規クラスはKotlinで記述することで少しずつKotlinへの移行を進めています。

その際にKotlinのデータクラスをJavaから呼び出す際にどうすればいいのだろうと少し迷ったので、備忘のために記載します。

## JavaでKotlinのデータクラスを利用するには
結論から言うと Kotlinのクラスを利用側のJavaクラスでimportして、普通に`new`することで利用できます。

“`kotlin
data class User(
val id: Int,
val name: String,
val mailAddress: String
)
“`

例えば、上記のKotlinのデータクラスをJavaで利用する場合には下記のように記述します。

“`java
import User;
public User c

元記事を表示

(JAVA勉強用メモ)2. データ型と文字列操作

## リテラル

### 真偽値
– boolean

### 文字
– char

“`java
char a = ‘a’; // 文字は”
String b = “a”; // 文字列は””

char c = ‘\u30A2’; // Unicode(『\u』+『16進数4桁』)
char d = 65; // 0 ~ 65535の数値
“`

### 整数
– byte … 8ビット
– short … 16ビット
– int … 32ビット
– long … 64ビット

“`java
int a = 0b10010; // 2進数
int b = 0320560; // 8進数
int c = 0x10b2c; // 16進数

int d = 123_456_789; // 桁区切りの_(アンダースコア)は、先頭・末尾・記号の前後以外で使用できる
“`

### 小数
– float … 32ビット
– double … 64ビット

## 識別子
変数やメソッド、クラスなどの名前

– 予約語は識別子に使えない
– 使える記号は『_』(ア

元記事を表示

java swingでテトリス作ってみた(外部ライブラリなし)

javaを初めて約半年なので、何か作ってみたいなーと思い作りました。
……テトリスとして最低限の機能しかないけど初心者なので多少はね?
コードも見れなくはないと思いたい。

java version 16
外部ライブラリは使ってないのでそのまま使えると思います。

https://github.com/o7r/Tetris.git

元記事を表示

(JAVA勉強用メモ)1. JAVAの基礎基本

## パッケージ
クラスなどの名称が重複して、予期せぬ不具合が発生することを防ぐための仕組み。使用目的は3つ

– 名前空間を提供して、名前が重複することを防ぐ
– アクセス修飾子と組み合わせてアクセス制御機能を提供する
– クラスを分類する

“`java
package sample; // package宣言はソースコードの先頭行に書く

import aaa.*

public class Test { }
“`

## javaコマンド
javaコマンドで実行できるのは次の3つ

– mainメソッドをもつクラスファイル(.class)
– jarファイル(.jar)内のメインクラス
– モジュールに含まれるメインクラス

“`bash
$ java Main
“`

## ソースファイルモード
javacコマンドでのコンパイルなしでソースファイルを直接実行できる。(Java SE 11以降)
※メモリ上でコンパイル後のコードを扱っており、コンパイル自体を行っていないわけではない。

“`bash
$ java Sample.java
“`

元記事を表示

【JSON】jackson で JSON化したくないプロパティをプログラムで設定

## まえがき
・Jackson を使ってオブジェクトを JSON 形式に変換
・アノテーションを使わない(使えない)場合
・具体的には “beanClass” を除外したかった

## 環境
Java 8
jackson 2.6

## ObjectMapper で設定
“`sample.java
ObjectMapper mapper = new ObjectMapper()
// … 設定
mapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector() {
private static final long serialVersionUID = -1L; // <- 適宜設定 @Override public boolean hasIgnoreMarker(final AnnotatedMember m) { List exclusions = Arrays.asList(“beanClass”);
return exclu

元記事を表示

Springbootでhelloworldを表示(InteliJ利用)

私はプログラミングの勉強を始めてまだ1週間も経ちませんが、メモがわりに投稿します。
少し長い説明になってますが、飛ばしているようなステップは無く、下記の通りにやればできるはずだと思います。

対象読者:

* Javaの超初心者(1ヶ月以内)
* コードの内容は分からないが、とりあえずブラウザ上に「HelloWorld」を表示させてみたい方
* InteliJで下記のYoutubeサイトを見たがよく分からない人

内容に関しては、以下のInteliJが上げているYoutubeサイトの内容ほぼそのままです。

#目次
1.プロジェクトの新規作成
2.Springbootアプリの実行(test)
3.HTTP Responseチェックの作成
4.Spring Controllerの作成
5.ブラウザへのHelloworld表示

#1.プロジェクトの新規作成
##1-1.New Project
InteliJを開き、「New Project」ボタンをクリック
![1.png](https://qiita

元記事を表示

[備忘録]バッチ処理的なものを作成

##目的
初めてバッチ処理のようなものを作ったので備忘録として記述。
挙動は以下の通り。
・CSVファイルからデータを受け取り、DBへインサート。
・DBの内容を受け取り、CSVファイルとして保存。

##用語
Q . バッチ処理とは?
A . 任意のタイミングでデータの処理を自動で行うプログラムのこと。

Q . CSVファイルとは?
A . 「,」で区切られたテキストデータのこと。

##コード
・CSVファイルからデータを受け取り、DBへインサート。

この挙動を実現するコードが以下の通り。

“`InsertItemCSV.java
package com.example.common;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.

元記事を表示

[Java] Long型とlong型の比較メモ

Javaで社内システムを作ってるときに、Long型の値とlong型の値を「==」で一致判定しようとしたら一致しなくて詰まったのでメモ。まだまだ未熟なエンジニアなので許してください\_m(-_-)m\_

#プリミティブ型の数値と参照型の数値をそのまま比較したいときは?
参照型のequalsメソッドを使いましょう。

“`java:compare.java
Long num1 = 1L;
long num2 = 1l;
if(num1==num2) { //1
System.out.println(“true”);
} else {
System.out.println(“false”);
}

if(num1.equals(num2)) { //2
System.out.println(“true”);
} else {
System.out.println(“false”);
}
“`

「1」のような比較を行うと、必ず**false**になりますが、「2」のような比較を行えば

元記事を表示

[paiza]スキルチェック見本問題 Java 一番小さい値 (paizaランク D 相当)

初めに

今回はpaizaラーニングの以下のスキルチェック見本問題に挑戦します。
見本問題なのでコードの公開は自由です。

一番小さい値 (paizaランク D 相当)

https://paiza.jp/works/mondai/skillcheck_sample/min_num

“`
問題:
5 つの正の整数が入力されるので、最も小さい数字を出力して下さい。

入力例1
10
12
4
8
46

出力例1
4
“`

解答コード

以下が、正解のコードですが、なかなかできませんでした。

“`java:
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//100までの数字なので、answerに最大値を設定しておく
int answer = 101;
//数字は5つ与えられるので、iは0-4までの変化をする
for(int i = 0; i < 5; i++){ //

元記事を表示

VCに誰かが入った時に通知してくれるbotを作る【Discord/Java】

## はじめに
身内用に誰かがDiscordのVCに入ったときに通知してくれるbotを作ったので覚え書き。

## 環境
– Java
– Gradle
– Javacord

## Javacordの導入
[Javacord](https://github.com/Javacord/Javacord)はDiscord botをJavaで開発するためのライブラリです。
以下のようにgradleファイルに記述します。

“`gradle:gradle.build
repositories { mavenCentral() }
dependencies { implementation ‘org.javacord:javacord:バージョン’ }
“`

## Discord botアカウントの設定
https://qiita.com/1ntegrale9/items/cb285053f2fa5d0cccdf

こちらとかを参考にしつつbotを作成する。

## ログインする

“`java
DiscordApi api = new DiscordApiBuilde

元記事を表示

「JavaはOSに依存しない」ちゃんと説明できるか俺?

# はじめに

Javaに関することは一通り他人にちゃんと説明できる「つよつよJavaエンジニア」になるための第一歩の記事(そんなこと知らんがなって話ですよねすみません)

当たり前のことなんだけど、改めてOUTPUTして整理しやす

# まず結論

OSに依存しない理由は「**実行環境(JVM)にてバイトコードをOSに合わせた機械語に変換する**」から

# 細かくみていこう

プログラミング言語は2種類に分かれる。

「コンパイラ方式」と「インタプリタ方式」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/653955/ebac1a2e-2ebd-9ff7-127a-26c0a3615439.png)

インタプリタ方式は、ソースコードを機械語に変換しつつ実行する。
コンパイラ方式は、ソースコードを事前に機械語に変換してから、一気に実行する。

違いは「事前に機械語に変換するかどうか」だ。

この2つ。事前に機械語に変換するかどうかで↓のような差が生まれる。
![image.png](

元記事を表示

mockmvcでUnparsable JSON stringが発生する & Response Bodyが常に空になる

SpringBoot MockMvcでControllerの単体テストを書いているときに上記のエラーが発生して1時間程度無駄にしたので備忘録です。

# 概要
mockmvcで以下のようにレスポンス値を確認するようなコードを書いていました。
(簡略化しています。)

“`java
Sample sample = new Sample(“sample”);

mvc.perform(get(URI)
.param(“userId”, “1”)
.accept(MediaType.APPLICATION_JSON)
).andExpect(status().isOk())
.andExpect(content().json(JsonOutput.toJson(sample)));
“`
実際にはjson化できているにもかかわらず、以下のエラーが出てしまい頭を抱えてしまいました。

“`
Condition failed with Exception:
org.json.JSONExcep

元記事を表示

Couchbase Server Java SDK解説: エラー処理の基礎

## はじめに

エラーは避けられません。そのため、SDKには、(一時的な)障害が発生した場合でも、アプリケーションを可能な限り最高の状態に保つという1つの目標に焦点を当てた非常に広範なエラー処理および再試行機能があります。
当然ながら、アプリケーションドメインを理解していないため、SDKだけでは、必要なすべての決定を下すことができません。ほとんどの場合、透過的な再試行が最善の選択になり得ますが、場合によっては、すぐに失敗して別のデータソースに切り替える必要があります。

ここでは、エラー処理の基礎について記します。

別の機会に、高度なエラー処理メカニズム、についても整理したいと考えています。

## エラー処理の基礎

次の基本事項は、SDKが再試行の決定を行う方法とエラーがどのように表示されるかを理解するのに役立ちます。

### リクエストのライフサイクル
次の画像は、リクエストライフサイクル中の高レベルのフェーズを示しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

[Java基礎⑥]配列 複数行を配列に格納/配列をランダム出力 split・hasNextLineメソッド

初めに

前回はJavaの基本的な配列を学習しましたが、
今回は応用編です。
決まった文字で区切って配列に格納する split と、
複数行を読み込むhasNextLineメソッドを学習しました。

split カンマで分割して配列に格納する

“`java:
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.nextLine();
String[] array = data.split(“,”);
System.out.println(array[0]);
}
}
“`

標準入力で、「ごはん,おかか,梅干し」と打つと、「ごはん」が出力されます。

以下を追記すると、配列の中身を一つずつ出力できます。

配列の中身を取り出す

元記事を表示

サーブレットとJSPのキホンのキ

# 記事の目的
サーブレットとJSPについて入門書を一通り読みましたが、数ヵ月もして久しぶりに触れると一切思い出すことができず、悲しくなりました。今回はそんな悲しい時にさらっと確認して元気になりたいという思いから、超基本的な内容を記事にまとめてみました。

# 目次
1. はじめに
1. サーブレットとは
1. JSPとは
1. サーブレットとJSPの役割
1. 参考文献

## はじめに
サーバサイドプログラミングの仕組みを実現する技術はいくつかあるが、Javaで開発する場合は、「サーブレット」と「JSP」を使用する。
JavaでWebアプリケーションを開発するには、サーブレットコンテナを持つアプリケーションサーバが必要。
(アプリケーションサーバの機能を提供するソフトウェアのことを「サーブレットコンテナ」、または単に「アプリケーションサーバ」と呼ぶこともある)

## サーブレットとは
サーブレットはJavaを使ってサーバサイドプログラムを作るための技術。
サーブレットクラスというクラスを開発することで、アプリケーションサーバ上でそれらを実行できる。
サーブレットクラスはブラウ

元記事を表示

Visual Studio CodeでOpen LibertyサーバーサイドJavaアプリをデバッグする

#はじめに

これまでフロントエンドはVisual Studio Code、サーバーサイドはEclipseで開発をしていましたが、Eclipseのヒープが結構とられるため、Visual Studio CodeでJavaも開発できるようにしたいと思います。
私の仕事柄、以下の機能が必要となります。

– Javaでコーディングするだけでなく、ローカルでJava EEアプリをデバッグしたい
– アプリケーションサーバーとしてOpen Libertyを利用したい

参考

#セットアップ

Visual Studio CodeでJavaで開発環境を整えるため、前提として以下のセットアップを行います。

– Java SDK (JREではないです)
– maven
– Visual Studio Code

Visual Studio Codeを立ち上げたら、以下の拡張機能をインストールします。

– Extention Pack for Java ![image.png](https://qiita-i

元記事を表示

【Java】Javaで出来ること

# 目的
Javaで出来ることを把握する。

# 目次

1. [Javaの特徴](#javaの特徴)
1. [アプリの開発](#アプリの開発)
1. [Webサイトの作成](#webサイトの作成)
1. [Webサービス](#webサービス)
1. [システムの開発](#システムの開発)
1. [組み込みシステムの開発](#組み込みシステムの開発)

# Javaの特徴

まず、Javaの特徴ですが、以下のような特徴があります!

・実行速度が速い
・ライブラリが充実している
・プラットフォームに依存しない

Javaは環境に左右されない言語で、`JVM`(Java Virtual Machine:Java仮想マシン)が入っていればWindowsでもLinuxでもMac上でも動きます。

# アプリの開発

まずJavaで出来ることの1つにアプリの開発があります。
特にJavaで開発されるAndroidアプリはとても多く、Androidスマートフォンアプリのどんな分野も開発できるため、標準開発システムと言えます。

また、パソコンのアプリにもJavaで開発されたものがあります。

#

元記事を表示

【Python】【Ruby】【Java】ビンゴカード作成問題!

 現在僕はPythonを学んでいます。Pythonを学び始めて1週間ほどが経過したので、過去にRubyやJavaで作成していたプログラムをPythonでも作ってみることにしました。

B:1~15のどれか
I:16~30のどれか
N:31~45のどれか
G:46~60のどれか
O:61~75のどれか

“`
B | I | N | G | O
13 | 22 | 32 | 48 | 61
3 | 23 | 43 | 53 | 63
4 | 19 | | 60 | 65
12 | 16 | 44 | 50 | 75
2 | 28 | 33 | 56 | 68
“`

 上記のような出力結果を得るプログラムになります。

– Rubyの場合
– Javaの場合
– Pythonの場合

 以上の流れでコードを載せていきます。

## Rubyの場合

https://qiita.com/kim-shun/items/0c862ff71e61648cd346

“`ruby
puts ” B | I | N | G | O”

b = (1..15).

元記事を表示

CouchbaseとSwaggerによるRESTful Webサービス構築⓪ サンプルアプリケーション紹介

## はじめに

本稿では、[Couchbase Labs](https://github.com/couchbaselabs)により公開されているサンプルアプリケーションを紹介します。

サンプルアプリケーションの構成を下に図示します。アプリケーションを動かしてみるためには、Dockerが利用できることが必要になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176567/8210dc7f-df06-9a38-9a85-27464ef28afa.png)

## クイックスタート

githubからリポジトリを取得します。ディレクトリを移動します。

“`
git clone https://github.com/couchbaselabs/try-cb-java.git
cd try-cb-java
“`

移動先のディレクトリで、`docker-compose`を以下のように実行します。

“`
docker-compose up
“`

### Couch

元記事を表示

[Unity] Android NativePluginの実装の仕方

# はじめに
Unityで使用するNativePluginのタスクがあったのでとりあえずテストでサンプルを作成してみました。
ここでは、UnityでAndroidのNativeアラートを表示させるまでの忘却録です。

## 準備
macOS Catalina: 10.15.7
Unity 2018.4.19f
Android Studio 4.0.1

## Android Studioでプロジェクトを作成

今回は「AndroidStudio4.0.1」で作成していきます。
![android001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1022988/b27ed595-5ee7-4a67-ebd3-cbaedaff4da0.png)

「Select a Project Template」で「No Activity」を選択
![android002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1022988

元記事を表示

OTHERカテゴリの最新記事