- 1. Javaの上位互換性を信じすぎてはいけないとか
- 2. blastengineのJava SDKを使ってメール送信を行う
- 3. Java: JUnit 例外が発生することを確認するテストの書き方の変遷
- 4. java.awt.image.BufferedImage.getType()が0:TYPE_CUSTOMの場合、インスタンス化時にIllegalArgumentExceptionが発生
- 5. javacでリリースバージョンを指定する
- 6. 【LINE BotをAPI連携させたいだけなのに #1】エラー祭りへようこそ
- 7. Java民から見た時のKotlinのギャップまとめ
- 8. Nablarchを使ってみよう
- 9. JDKリンク集(OpenJDK, Amazon Corretto)
- 10. 「Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty」の対処方法
- 11. Javaのclassを逆コンパイルする
- 12. コンピュータとオセロ対戦48 ~勝敗予測、改善~
- 13. Spring bootのプロジェクト作成はSpring Initializrを使おう
- 14. [Set Up] Java + Selenium4 WebDriver + Chrome E2E test automation in windows by Eclipse
- 15. Java 18新機能まとめ
- 16. Java Silverの資格勉強で学んだことをアウトプットしていく
- 17. 春から大学生(情報・工学)の方へ~プログラミング入門3~(Java言語ってなあに?)
- 18. Timber×Crashlytics でログをクラッシュレポート送信(Crashlytics編)
- 19. Optionalの基本まとめ
- 20. Javaのジェネリクス再考
Javaの上位互換性を信じすぎてはいけないとか
# クイズとか
いつものとおりクイズからスタートです。
以下のプログラムを**実行**して、得られる**結果**を答えてください。
“`java
import java.util.stream.IntStream;
public class Peeker {public static void main(String[] args) {
long i= IntStream
.rangeClosed(1,3)
.map(x->x*2)
.peek(System.out::print)
.count();
System.out.println(i);
}
}
“`
ちなみにあまり見たことないかも知れませんので書いておきますと、peekは要素を渡すだけ、好きにしてね!という動きをします。
たぶんデバッグ用途以外で使うことはないです。てかJava APIリファレンスにもそう書かれてますし。
>This method exists mainly to support debugging,# 答えとか
答えは **「Javaのバージョンによる
blastengineのJava SDKを使ってメール送信を行う
[blastengine(ブラストエンジン)](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。まずはテキストメールの即時送信についてです。
[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b
Java: JUnit 例外が発生することを確認するテストの書き方の変遷
# はじめに
JUnitでは、バージョンによってテストの書き方が異なります。
この記事では、例外が発生することを確認するテストの書き方を比較します。
# JUnit 3
[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())が呼ばれるとテストに失敗します。
下記のサンプルコードの場合、getメソッド内でIndexOutOfBoundsExceptionが発生した場合は、catch句に入り、[failメソッド](http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/Assert.html#fail())は呼ばれません。このため、テストに成功するという仕組みになっています。
JUnit 4/5でもこの書き方は可能ですが、後述の書き方のほうが読みやすいでしょう。
“`java
public void testOutOfBounds() {
try {
Lis
java.awt.image.BufferedImage.getType()が0:TYPE_CUSTOMの場合、インスタンス化時にIllegalArgumentExceptionが発生
# はじめに
## 記事を書いたきかっけ
長年運用している古いシステムにて、外部システムから送信される画像ファイル(JPEG)をリサイズして保存するという処理をしているのですが、外部システムの更改に伴いエラーが発生するようになり、その原因を調査しました。
同じ現象で困っている人はいないかもしれないですが、もし手助けになれば幸いです。
## 対象読者
java.awt.image.BufferedImageをインスタンス化しようとして、IllegalArgumentExceptionに遭遇した人(いるのかそんな人?)
## 環境
Java 1.6
Javaのバージョンが1.6の時点でお察し。クローズドな環境の塩漬けシステムです。
# 事象
処理部分のコードは以下のようなイメージです。
“`java
String strFilePath = “ファイルパス”;
File file = new File(strFilePath);BufferedImage image = ImageIO.read(file);
int orgWidth = image.getWi
javacでリリースバージョンを指定する
# 概要
Javaの外部ライブライりのバージョンUPを行った際に、実行環境のJavaよりライブラリのリリースバージョンが上だったので、実行環境のJavaのバージョンUPをすることになったときのメモです。# リリースバージョンの確認
リリースバージョンの確認は、対象のクラスファイルをjavapで逆アセンブリすることで確認出来ます。javapコマンドの詳細な説明は[こちら](https://docs.oracle.com/javase/jp/17/docs/specs/man/javap.html)をご覧ください。まずはクラスファイルへコンパイルするためのJavaファイルを準備します。
“`java:HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World.”);
}
}
“`javacコマンドでコンパイルします。javacコマンドの詳細な説明は[こちら](https://docs.oracle.
【LINE BotをAPI連携させたいだけなのに #1】エラー祭りへようこそ
# LINE Botを思い通りに動かしたーい!!
LINE Botでプッシュメッセージとリプライメッセージ(おうむ返しと固定テキスト)返すところまではできた。(やっとのことで。息も絶え絶えで。)
そして息切れしながら向かった先は、
## 脳みそに新たなひらめきをくれるAPI連携Botが作りたい
仕事ではプランナーとして企画制作の1000本ノックを日々行い、大学院ではアート作品を作る私。__煮詰まった時に脳みそをリフレッシュさせたい!自分の思考の外から新たな風がほしい!!__
そんな時のお助けアイテムとして、**「デザインに関してのインスピレーションを与える名言」** というステキAPIからお言葉を頂戴しようと思った。### まずは単純なオウム返しBot
“`php5
‘use strict’;const express = require(‘express’);
const line = require(‘@line/bot-sdk’);const PORT = process.env.PORT || 3000;
const config = {
channelSe
Java民から見た時のKotlinのギャップまとめ
# 経緯
社内PJでKotlinを使ってコードを書くことになりました。
メンバーには自分含めJava民が多いです。Kotlinへの移行がちょっとでもスムーズになるように、Java民から見た「Kotlin特有の書き方だなぁ」ってところをまとめました。## Kotlin慣れに良いサイト(たぶん)
[(公式)イディオム](https://kotlinlang.org/docs/java-to-kotlin-idioms-strings.html)
[(公式)コレクションタイプ](https://kotlinlang.org/docs/java-to-kotlin-collections-guide.html#operations-on-any-collection-type)
Javaでこう書いてたものがKotlinだとこう、みたいな感じ[公式リファレンス](https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/basic-types.html)
コレも公式。
右上の「TRY ONLINE」からオンライン環境で
Nablarchを使ってみよう
# はじめに
こんにんちわ、きりと申します。お仕事でJavaのフレームワークであるNablarchを利用する機会があったので、
その特徴や開発の癖のようなものを整理して皆さんに共有できればと思い記事にしました。[Nablarchの良いところと悪いところ](#Nablarchの良いところと悪いところ)でも触れますが、お世辞にもわかりやすいフレームワークではないため、
私のようにNablarchを使った保守・開発を携わる人の助けになればと思います。整理する中で思いの外、ボリュームが出てきてしまったので、「Nablarchを使ってみよう」シリーズとして
一覧化しましたが、記事の大部分はNablarch開発に関係なく参考にできると思いますので、
気になる記事を閲覧頂ければと思います。なお、記事の内容や構成は定期的に見直しを行う予定ですので、
情報の誤りや誤記がありましたら優しくコメント頂ければ幸いです。# Nablarch(ナブラーク)とは
Nablarchとは、かなりざっくり言うなら、Spring FrameworkのようなJavaアプリケーション開発/実行基盤です。
JDKリンク集(OpenJDK, Amazon Corretto)
# JDK
## OpenJDK
https://jdk.java.net/archive/## Amazon Corretto
https://aws.amazon.com/jp/corretto/?filtered-posts.sort-by=item.additionalFields.createdDate&filtered-posts.sort-order=desc
「Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty」の対処方法
# まえがき
環境構築時にこの問題にでくわし、4時間ほど時間とられたので記録として残しておく( ´_ゝ`)
# 参考
# 原因
・OpenJDK8では`trust store($JAVA_HOME/lib/security/cacerts)`が空。# 対処方法
・OpenJDK11からとってくる。
Javaのclassを逆コンパイルする
# 公式
https://github.com/skylot/jadx# 動作環境
– MacOS BigSur
– Java8# Jadのインストール
“`terminal
brew install jadx
“`# 使い方
“`terminal
jadx hello.class
“`# オプション
|オプション|概要|
|:–|:–|
|-d, –output-dir|出力先|
コンピュータとオセロ対戦48 ~勝敗予測、改善~
https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/22641b036d3b1e5fdbca)
# 今回の目標
勝敗予測の精度を上げる
# 使用バージョン
* Java 17.0.1
* MyNet 1.2.4
# ここから本編
## ディレクトリ構成“`
48
├── data // 学習データの保存
└── pic // グラフ保存
// プログラムなどはここに置いてある
“`## 01 とりあえず、様々なパターンのネットワークを試してみる
まず、[前回](https://qiita.com/tt_and_tk/items/22641b036d3b1e5fdbca)の記事のRun.javaのみ変更して、様々な条件で学習させてみました。
データ集め部分は前回と全く同じです。
学習の際、誤差の意味が分かりやすくなるよう64で割らず、平均絶対誤差を使用しました。
あてずっぽうで調べたところある程度の精度があった3層で、ノード数や
Spring bootのプロジェクト作成はSpring Initializrを使おう
昔からある Spring Framework のプロジェクト作成ツールとしては Spring Tool Sweet (STS) が有名ですが、それとは別に Spring 公式ツールとして Spring Initializr があるのでそれを使うと便利です。
# Spring Initializrとは
Spring Initializr (スプリング イニシャライザ、で読み方合ってる?) は Spring boot プロジェクトのひな形を簡単に作ることが出来るサービスです。
[Spring Initializr](https://start.spring.io/) からアクセスして利用を開始できます。# Spring Initializrの使い方
[Spring Initializr](https://start.spring.io/) にアクセスすると以下のようなページが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2387604/4da126ba-0fa2
[Set Up] Java + Selenium4 WebDriver + Chrome E2E test automation in windows by Eclipse
# Outline
Selenium Webdriverをもちいて、WEB (Chrome) のE2E テスト自動化を始めるにあたっての
環境構築のメモである# App List
| APP | Version | Objective |
|:———–|:————|:————|
| Java | Version 8 Update 321 | Java
| Eclipse | 2021‑12 | Java Programing Editor |
| Selenium Client | 4.1.2 (January 30, 2022) | Selenium |
| Chrome | 99.0.4844.74 | Web Browser |
| OS | windows10 | execution environment |# Java
Javaの実行環境をダウンロードし、インストールする
### download
https://www.java.com/ja/download/ie_manual.
Java 18新機能まとめ
Java 18が2022/3/22にリリースされました。
https://mail.openjdk.java.net/pipermail/jdk-dev/2022-March/006458.html
機能的に多くのプログラマに関係ありそうな変更はUTF-8がデフォルトになったくらい。あとは簡単なWebサーバーが入ったことかな。
詳細はこちら
[JDK 18 Release Notes](https://jdk.java.net/18/release-notes)
[Java SE 18 Platform JSR 393](https://openjdk.java.net/projects/jdk/18/spec/)
[OpenJDK JDK 18 GA Release](https://jdk.java.net/18/)APIドキュメントはこちら
[Overview (Java SE 18 & JDK 18)](https://docs.oracle.com/en/java/javase/18/docs/api/index.html)変更点まとめはこちら
https://
Java Silverの資格勉強で学んだことをアウトプットしていく
訳あってJava Silverの資格勉強をしているのだが、勉強していて
「これってこういうふうにしても動くんだ~」という発見や驚きがあったので
そういうのを忘れない為に書き留めていこうと思う。・記事の対象者
①Javaの初学者
②Java Silverの資格勉強をしている人## ①制御文(if、for、while等)の中括弧を省略しても動作する
Java Silverの勉強をしていて一番驚いたのがこれ!!
例えば以下のコードの場合でもエラーにならず動作する。
この場合はif文の次の1文がif文の条件に合致した時の処理として使われる。“`java:例①
if(i = 3)
System.out.println(“処理1ですー。”);
System.out.println(“処理2ですー。”);
“`
上記のコードは、下記のコードの動きと同一になる。
“`java:例②
if(i = 3) {
System.out.println(“処理1ですー。”);
}
System.out.println(“処理2ですー。”);
“`どちらを使っても動くには動く
春から大学生(情報・工学)の方へ~プログラミング入門3~(Java言語ってなあに?)
# 春から大学生(情報・工学)の方へ~プログラミング入門~(Java言語ってなあに?)
# 対象読者
この春から情報・工学系の大学生で以下の2記事を見ていただいた方
https://qiita.com/HaaSAtC/items/490d066bdbec8441a2f6
https://qiita.com/HaaSAtC/items/2687eef10dba08432a19# ご好評?をいただいております
3月20日に第1弾の記事を配信させていただきました。
わずか2日で100件近くもviewがありました。
全員新大学生なのかはわかりませんが、仮にそうだとしたらすごいですね
まだ4月になってないのに予習しようなんて…この調子で頑張ってください
第2弾につきましても上げて5分で10人も見ていただき驚いてます。
Qiitaじゃなくて個人ブログだったらここまで伸びてないでしょうね
ありがたい# Javaの「文法」を学習したい方はこちらへ
いろいろググった中で一番わかりやすくて体系的なサイトです
「オブジェクト指向」までの基礎文法を網羅
「一番かんたんなJava入門」
https:/
Timber×Crashlytics でログをクラッシュレポート送信(Crashlytics編)
# はじめに
![タイトルスライド.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1215832/13b058da-f12d-374f-2461-5e2ce8396a3a.png)
日が空いてしまいましたが、後編です。
前編は「[Timber×Crashlytics でログをクラッシュレポート送信(Timber編)](https://qiita.com/vidro/items/d3473c28be4682abb7fe)」です。
https://qiita.com/vidro/items/d3473c28be4682abb7fe
前編では Timber を用いて、デバッグビルドとリリースビルドで、ログ出力を切り替える基盤を作成しました。
後編では、前編で作成した `ReleaseTree` クラスを用います。
そして、リリースビルド時は、「コンソールへログ出力**しない**」かつ「クラッシュ時にレポートを送信する」機能を組み込んでいきます。# Firebase Crashlytics
[
Optionalの基本まとめ
# Optionalとは?
Optionalは値がnullの可能性があることを明示的に表現するためのクラスです。
また、値がnullである場合のハンドリングを簡単にするメソッドが用意されています。
## Optionalクラスの代表的なメソッド
### インスタンスの生成
| シグニチャ | 説明 |
|:–|:–|
| **static
\Optional empty()** | 値が存在しない空のOptionalインスタンスを返します。 |
| **static
\Optional of(T value)** | 引数で渡された値を持つOptionalインスタンスを返します。 nullを渡すと**NullPointerException**で実行時エラーになります。 |
| **static
\Optional ofNullable(T value)** | 引数がnullならば空の、nullでないなら引数を値に持つOptionalインスタンスを返します。 |
“`Java:OptinalSample.java
Javaのジェネリクス再考
### 概要
Javaにジェネリクスが導入され,型引数,パラメータ境界,共変,反変,不変,ワイルドカード,などなど,様々な構文,機能が追加されました.ジェネリクスの構文や,これら新しい機能(もう新しくないけど)の解説は少し探せばわかり易く解説してくれるページがたくさん見つかります.が,ジェネリクスを使ったクラスライブラリを使うだけならまだしも,自分のクラス定義でジェネリクスを使うとなると,「で,どうすればいいの?」となってしまい,適当に使ってきましたが一念発起して真面目に考え,Tips的にまとめてみました.
ですので,ジェネリクスの構文や意味などの説明は割愛しています.そして,確実に正しいことを言っている保証はなく,あくまで個人の理解ですので,間違い等ありましたらご指摘いただけると幸いです.:::note info
長くなりそうだったので,一旦公開しますが,パターンなどは追記する予定です.
:::
—
### そもそも
ジェネリクスを使う目的は,***クラスそのものではなく,クラスが内包する変数のためのもの***,だと考えると良いと思います.
そしてその典型的な例がコレクション