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

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

【初心者向け】ラムダ式とStreamAPIについて

Java8から導入されたラムダ式の記述について備忘録と共に初心者向けに解説していきます。

# ラムダ式とは
ラムダ式とは、Java8から導入された、メソッドを変数のように扱うことのできる記述様式のことです。
ラムダ式を使用することで、記述が簡略化でき、より読みやすいコードを書けるようになります。

また、StreamAPIなどの関数型インターフェースを使用する際にラムダ式を使用すると、非常に簡単に記述ができます!!

#ラムダ式の記述方法
まずは早速ですが、ラムダ式の実際の記述方法について説明します。

“`RunnableLamda.java
public static void main(String[] args) {
Runnable runner = () -> System.out.println(“Hello”);
runner.run(); //Hello
}
“`

上記はrunnableインターフェースをラムダ式を用いて記述したものです。
匿名クラスから、さらに「new Runnabl(){}」と「public void run」を省略した形になります

元記事を表示

Reactive StreamsとJDK 9 Flow APIの入門メモ

# 概要

この記事はReactive Streamsと、JDK Flow APIを調べたときのメモになります。

`Flow API` (java.util.concurrent.Flow) はJDK 9([JEP 266] (http://openjdk.java.net/jeps/266))で導入されたAPIで、`Reactive Streams Special Interest Group` (SIG)というワーキンググループが作成した仕様([Reactive Streams] (https://www.reactive-streams.org/))に対応しています。
この仕様に対応しているJVMのライブラリには[Akka Streams] (https://akka.io/)(Lightbend, Inc.)、[ReactiveX/RxJava] (http://reactivex.io/)などがあり、Spring WebFluxで使われている[Project Reactor] (https://projectreactor.io/)(Pivotal Software, In

元記事を表示

Spring のBean Validaiton 〜びーん ばりでーしょん〜

# Bean Validation

Spring Frameworkを使用し、REST通信を基本としたサンプルを記載する。

## びーん ばりでーしょんって?
クライアントから送信されたRequestBodyの値をチェックする。
チェック内容は何種類かある。

– Null
– 空文字
– 文字数
– パターン(正規表現)
– 最大サイズ
– 最小サイズ

などなど…

## とりあえずサンプル

コントローラでただバリデーションを実行するだけのサンプル。

“`java:SampleContorller.java
@RestController
@RequestMapping(“validation”)
public class SampleController {

// バリデーションするだけ
@PostMapping
public SampleResource validation(
@RequestBody @Validated SampleResource resource) {
return resource;
}
}
`

元記事を表示

JJUG CCC 2019 Fallに参加してきました.

#JJUG CCC 2019 Fallに参加してきました.
Javaを初めて半年,イベントに初参加!!
##Javaで学ぶオブジェクト指向プログラミングの基礎知識
[発表者の資料](https://www.slideshare.net/masuda220/java-objectoriented-programming-primer)

– オブジェクト指向の考え方がソフトウェア開発に活かせる
– 増田さんの考えるオブジェクト指向プログラミングのこだわり
– モジュール性
– 型(値の種類)でプログラムを分割
– 型でモジュールを作る
– シームレス性
– 一連の活動の継ぎ目をなくす開発手法
– 持ち帰ってほしい言葉
– 型
– カプセル化
– 2つのモード
– モード1
– 定義済みの型だけを使う
– 標準ライブラリや組み込み型のみ
– 型の消費者
– モード2
– 独自の型を定義する
– 型の生産者
– オブジェクト指向プログラミングのスキ

元記事を表示

REST通信には、げきつよRestTemplateを使うべし

# RestTemplate

## RestTemplateって?

RestTemplateは、REST API(Web API)を呼び出すためのメソッドを提供するクラス。
Spring Frameworkが提供するHTTPクライアント(HttpClientをラップしている)。

まとめると、、、REST通信が簡単にできる便利部品。

DTOからJson形式のリクエストに変換する処理や、Json形式のレスポンスをDTOにバインドする処理をしてくれる。
データ形式はJson以外にXmlやFormなど様々対応していて、カスタマイズも可能!!

### DTO => Json

“`java:DTO
@Getter // (1)
@Setter // (1)
public class SomeRequestResource {
private String message; // (2)
}
“`
(1) ライブラリの`lombock`を使用してGetter, Setterを自動生成
(2) Json変換を後に反映されるフィールド

“`json:Json
{
“mes

元記事を表示

java学習4日目

スッキリわかるjava入門 第2版 5章まで

  • 1章 プログラムの書き方
  • 2章 式と演算子
  • 3章 条件分岐と繰り返し
  • 4章 配列
  • 5章 メソッド

今日で5章のメソッドまで読むことが出来た。
ProgateでJavaコースを達成してからこの参考書を読み始めたので今のところは、割とすんなり理解できている。

元記事を表示

JJUG CCC 2019 FALLに参加しました

# 概要
* 主催 : 日本Javaユーザグループ
* 開催日時 : 2019年11月23日(土)
* 場所 : ベルサール新宿グランド コンファレンスセンター 5F
* ハッシュタグ : #jjug_ccc

# JJUGとは
* 日本Javaユーザグループ(Japan Java User Groupの略称)
* Java 技術の向上・発展、開発者の支援を目的とした任意団体です。2007年4月に発足して、現在は9000人以上の Javaエンジニアが参加する日本最大のJavaコミュニティです。

# 詳細
## 会場雰囲気

![IMG_1508.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13451/e795e9c3-c7bc-20a4-cfbc-9b06a8e2a50a.jpeg)

![IMG_20191123_105343.jpg](https://qiita-image-store.s3.ap-n

元記事を表示

【Java】クラス・メソッドの個人的まとめ(基礎)

# 【Java】クラス・メソッドの個人的まとめ(基礎)
エンジニアの t-77 です。
個人的にJavaの勉強で大事だなと思ったことをまとめました。
今回は、クラス・インスタンス・メソッドについてです。

## ① クラスについて
– モノや事柄であるオブジェクトの1つであり、まだ実体化されていないもの(モノの設計図)。
– Javaのコードには、最低1つ以上のクラスが必要。
– クラスを1つの「モノ」として考えると、クラスの中身(メンバ)には大きく分けて以下の2つある。
– モノの状態や性質を扱う「フィールド」
– モノの機能を扱う「メソッド」
– クラスは、基本的に以下の「sample.java」ように記述する。

“`sample.java
// クラスの宣言
class Animal
{
// クラスのモノの状態・性質を扱う「フィールド」を記述
// 「型名 フィールド名;」のように記述
String name;
int num;
// クラスの機能を扱う「メソッド」を記述
// 「戻りの型 メソッド名(引数リスト){文;}」のように

元記事を表示

現役大学生が1人で10日間かけてJavaアプリを開発してみた。

#開発したもの
世界の999都市の現在の気温、気圧、風速、湿度、降水量、日の出、日の入りなどをランキング付けするJavaアプリ
 
 

寒い順に999都市を表示↓↓↓
![IMG_3937.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535679/980d98e6-37f9-cf3b-73da-7a084c158fe0.png)
![IMG_3936.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535679/a4ff095c-b645-28c6-a90e-83d6c275a50c.png)

# 実行結果
**寒い順(999都市、3時間ごと)**
 ○[20時頃](https://raw.githubusercontent.com/yusuke975/Weather999/master/Weather999/%E5%AE%9F%E8%A1%8C%E7%B5%90%E6%9E%9C/11%E6%9C

元記事を表示

SpringBootでバーコードを生成

### やること
フォームに入力した値で一次元バーコードをつくりたい
ZXing(ゼブラクロッシング)というライブラリを使うとバーコードとかQRコードが作れる
https://github.com/zxing/zxing

今回は詳細画面に一次元のバーコード(CODE_39)を出力する想定

### ZXingライブラリの追加
pom.xmlにZXingライブラリを追加する
Java SEでの開発の場合はjavaseを指定
Androidでの開発の場合はandroidを指定
Zxingライブラリとは別に、Base64エンコードを行うためにcommons-codecを利用します

“`pom.xml



com.google.zxing
javase
3.4.0


com.google.zxing

元記事を表示

プログラミング学習3日目

この日記は昨日の学習記録です

Progate javaコース達成

取りあえずprogateのJavaコースを3日程で全て終わらせる事が出来た。
あまり理解しがたい箇所も多々あったので、明日からは「スッキリわかるJava入門 第2版」を学習していこと思う。

Progate JavaⅤ 学習内容

  • オブジェクト指向において重要なクラス継承のやり方と理解
  • 親クラスのメソッドをsuper()で使用する方法
  • 抽象メソッドの書き方、サブクラスでオーバーライド(上書き)、クラス型のフィールド理解

プログラミングなんて自分には出来るのだろうか?と悩んでいても始まらないので、この日記を見てくれている人は、自分と一緒にプログラミング学習を進めていこう!!!

元記事を表示

Android Studioでタブ文字が機能しない

Android StudioでTabキーを入力しても半角スペースが3つ入力されるだけでタブ文字になりません。助けて。

最新のAndroid StudioをWindows10で使用してます。
Settings > Editor > Code Style > Java > Tabs and Indentsの、『Use tab character』にはチェックを入れました。
半角スペースを4つもしくは8つ打ったりもしましたが変わらず。

“`Java
ArrayList answers = new ArrayList();
for (int i = 1; i <= 3; i++) { answers.add(quizSet.get(currentQuiz)[i]); } Collections.shuffle(answers); ``` quiz.txt```What is A? A0 A1 A2``` 簡単なクイズアプリを作っていて、 quiz.tx

元記事を表示

web(java)の制作必要なもの練習メモ 作成中

#web(java)の勉強をしているときに使ったものです

###フィルタ
javaリソース->srcにパッケージを作成
EncodingFilter(フィルター)を作成しdoFilterに
request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”);
を設定することにより各サーブレットとjspに記述する必要がなくなる

ログを残すフィルタ
doFilterに
System.out.println( ((HttpServletRequest)request).getRequestURI() + “:” + new Date() );
に記述するとコンソールにアクセスログを残す

元記事を表示

Javaのポリモーフィズム super()について

ポリモーフィズムを改めて調べたのでまとめておく
今回はsuper()を深ぼって理解したい

**対象**

– なんとなくでJavaを書いている人

## super()とは、親クラスのコンストラクタである
**結論**である

具体例で試していこうと思う

## 具体例
“`Person.java
public class Person {
Person() {
System.out.println(“人間です。” + );
}
}
“`
“`Student.java
public class Student extends Person {
Student() {
System.out.println(“学生です。”);
}
}
“`
“`Main.java
public class Main {
public static void main() {
new Student();
}
}
“`
“`result
人間です。
学生です。
“`

## 解説
Stud

元記事を表示

アノテーションってなぁに?

#はじめに
勝手に始めた「なぁに?」シリーズ(というか、ただのメモ)。
今回はJavaのアノテーションについて。

知っているようで知らない(?)アノテーションの意味やメリットを簡単に整理する。

#アノテーションってなに?
+ Annotation = 注釈 の意。
+ コード中に “@” を使って記述する。
+ たとえば、以下のようなコードになる。

“`java
package hoge.nwobhm;

public class Metallica {
@Override
public String playMetal() {
return “riff”;
}
public static void main(String[] args) {
Metallica metal= new Metallica ();
System.out.println(metal.playMetal());
}
}
“`

#例えばどんなものがあるの?
具体的には以下のようなものがある。

+ Overri

元記事を表示

Javaプログラミング (static句と「クラス変数」)

#static句とクラス
メインメソッドのメソッド名の前についているstaticという文言についてです。
標準出力やクラスの書き方、呼び出し方を理解していれば読めると思います。
##クラス変数
普通、クラスはインスタンス化して使います。試しに次のメソッドを考えてみましょう。

“`java
public class Calculate {
private int s = 3;
public int multipleIntegerNumber(int num){
s = num + s;
s = num + s;
return s;
}
}
“`
これをメインメソッドの中で呼び出してみます。

“`java
public class Mainmethod{
public static void main(String[] args){

int result;

Calculate calculate = new Calculate();
result = calculate.multipleIntegerNumber(3

元記事を表示

【個人メモ】Java における乱数生成器とのつき合い方

https://k11i.biz/blog/2019/11/25/how-to-use-random-number-generator-in-java/

元記事を表示

Google Cloud Firestore で Channel ManagedChannelImpl was not shutdown properly!!! が発生する

## 概要

– Google Cloud Firestore API Client Library for Java で「Channel ManagedChannelImpl was not shutdown properly!!!」というエラーメッセージが出力される
– 今回の環境: Java 11 + Google Cloud Firestore API Client Library for Java 1.31.0

## エラーメッセージ例

“`
2019-11-25 05:57:46.557 ERROR 41081 — [nio-8080-exec-5] i.g.i.ManagedChannelOrphanWrapper : *~*~*~ Channel ManagedChannelImpl{logId=5, target=firestore.googleapis.com:443} was not shutdown properly!!! ~*~*~*
Make sure to call shutdown()/shutdownNow() and w

元記事を表示

最近噂のDart言語でjsアプリ作ってみた

最近噂の3倍生産性が良いFlutterにつられて色々調べていたら、dart言語なるものがあり、JSアプリ作ろうかなーって思っていたので、使ってみた。
https://dart.dev

facebookインスタントゲームとして、公開済み。
https://fb.gg/play/solitaireproworld

javaで開発したandroidアプリを移植した。
https://play.google.com/store/apps/details?id=jp.co.projapan.solitaire

ゲームアプリなので、StageXLフレームワークを使用。これはFlash風APIになってる。
http://www.stagexl.org

###良かった点
– ビルドが速い。5秒程度でリロードされる。慣れるとサクサク開発できて、超気持ちいい。
– Javaに似てるので、javaから移植しやすい。javaプログラマーは入りやすい。
– javaと比べると、文句なしでDartがいい。全然違う。Objective-Cはクソ
– 新しめの言語なので、変な制約が少ない。C++とかクソ

元記事を表示

try-with-resourseが便利

##リソースを自動で閉じる
ファイル開いて、try-catchして、閉じるみたいな
よくやると思うんですけれど
finallyとか使おうとすると

“`長い.java
// try
// ファイルを開く

// catch
// 例外処理

// finally
// ファイルを閉じる

public static void main(String[] args) {

String filePath = “C:\\Windows\\System32”;
BufferedReader bufferedReader = null;

try {
// ファイルを開く
File file = new File(filePath);

// 読み込み
FileReader fileReader = new FileReader(file);
bufferedReader = new BufferedReader(fileReader);

// 出力
String data;
whil

元記事を表示

OTHERカテゴリの最新記事