wrongwrongな開発日記

しんまいさんの忘備録

java

【日記】DDD的な設計完全に理解したメモ【プログラミング】

マサカリ避け 本読んでないです。 経験則です。 DDDチョットデキル人になりたいです。 前書き 「大量の相関チェック(しかもDBアクセスなど層をまたぐ処理や複数オブジェクト間の相関チェックを含む)とその後の登録が発生する状況」を想定して書きます。 言…

【Java】interfaceでinterfaceをimplementsしたかった(extendsが正しかった)話

やりたかったこと 以下のようにinterfaceが2つあるとき、この2つのinterfaceを継承したinterfaceを作ろうとしました。 public interface Interface1 { String hoge(); } public interface Interface2 { int fuga(); } やろうとしたこと interfaceなので、以…

【SpringBoot】内部エラー周りの話

内部エラー周りの設計について自分の経験から得た知見をまとめます(なのでセオリーとかアンチパターンとか有れば教えていただけるとありがたいです)。 内部エラーとは基本的に自分で書いてThrowするようなエラーを想定しています。 エラーハンドリングに関…

【SpringBoot】vuejs-datepickerで取得した日時をPOSTするとサーバーサイドで読んだ時に1日前になる問題が発生した【Vue.js】

やりたかったこと vuejs-datepickerでPOSTした日時から、サーバーサイドで日付を取得する 問題の概要 vuejs-datepickerはタイムゾーンまで含めてデータを出力する Jacksonはフォーマット設定をしなければ受け取った日時をGMT基準(=日本時間-9時間)に変換し…

【Java】最近やっているプロジェクトで後悔していること5点【プログラミング】

Java8でプロジェクトをやっていて後悔していることを5点挙げます。 上から後悔している順です。 nullを返すな、Optionalを使え 文字通りなんですが、null が絡むと何が返ってくるのか分からない状態になるのでOptional使った方がいいです。 特にnullを返しが…

【Windows】環境変数をいくら編集してもPathが通らなかったときの対処【Java】

状況 下記の記事を参考に環境変数を設定しても設定が反映されず、javaコマンドが通りませんでした。 www.atmarkit.co.jp コンソールには以下のようなエラーが出ていました。 PS C:\Users\wrongwrong> java Error opening registry key 'Software\JavaSoft\Ja…

【Java】引数のListに対するStream処理がコンパイルできない状況への対処

以下のコードは、Listを内容のクラスの名前の配列にして返すという内容です。 List内の型に関係なく実行できるコードであるため、一見正しいように見えますが、このコードはコンパイルできません。 String[] toNameArray(List list) { return list.stream().…

【ModelMapper】The destination property [セッター名] matches multiple source property hierarchiesと言われた時の対処【Java】

以下のようなエラーに対処します。 org.modelmapper.ConfigurationException: ModelMapper configuration errors: 1) The destination property [セッター名] matches multiple source property hierarchies: 対処 ModelMapper#getConfiguration().setAmbigu…

【SpringBoot】Lombokでアクセサを実装したis...という名前のBooleanを含むEntityのマッパーを用いたINSERT/SELECTが失敗する問題への対処【JDBC】

概要はSSIAです。 ここではEntityをデータベースのテーブルそのままのPOJOとします。 原因 ここではis_active_sampleという名前のカラムに対して、isActiveSampleというBoolean/booleanのフィールドを持つEntityを挿入する状況をサンプルとして書きます。Lom…

【JDBC】SimpleJdbcInsertで複数の要素を一気にInsertする

BeanPropertySqlParameterSourceの配列を作ってSimpleJdbcInsert#executeBatchに入れるとできます。 //配列を作る関数 private BeanPropertySqlParameterSource[] makeParamArray(List entities){ BeanPropertySqlParameterSource[] sources = new BeanPrope…

【JDBC】SimpleJdbcInsertでDEFAULTを設定したEnumのInsert時にcannot be nullと言われる状況への対処

wrongwrong163377.hatenablog.com 前回の記事がトラブっていた原因が判明したので書き直します。 原因 NOT NULLなEnumカラムに対して値を指定しない場合、com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column '[カラム名]'…

【JDBC】SimpleJdbcInsertでDEFAULTを設定したカラムへのInsert時にcannot be nullと言われる状況への対処

wrongwrong163377.hatenablog.com この記事に書いたやり方でも動きますが、より演繹的な方法が有ったのでこちらもどうぞ。 問題 SimpleJdbcInsertでInsert時に、DDLでNOT NULLとDEFAULTを設定したカラムについてMapSqlParameterSourceに値を指定しなかった場…

【Java】@FunctionalInterfaceを使ってみる

wrongwrong163377.hatenablog.com 今更ですが、↑の内容ならFunctionalInterface使った方が楽な場面も有るかな?と思ったので書きました。 使い方 全部まとめ これ以降で書く内容を全部まとめたクラスが以下です。 public class Main { @FunctionalInterface …

【Java】Intellij IDEAでWebSocketを導入する【Kotlin】

Intellij IDEAでWebSocketを使います。 やること やることは以下の通りです。 (Intellij IDEAでコンパイル・実行までできるようにする) Java EEを持ってきて配置する Application Serverを設定する 参考ページ ここから書く内容は以下のページと同様です。 j…

【Kotlin】APIを叩く【Java】

KotlinでAPIを叩いてJSONを取得します。 APIを叩くことを勉強しはじめたばかりなので分かってないことばかりですが、URLを叩くとJSONが帰ってくる状況を想定して作りました。 ソースコード GitHubAPIを叩いて、自分のアカウント(k163377)の全リポジトリの…

【Kotlin】mXparserを使う【Java】

mXparserを使ってみました。 mXparserとは やったこと ソースコード 実行結果 導入方法 mXparserとは Stringで諸々を入力してやることで数式を計算できるライブラリです。Javaや.Net、AndroidやXamarinといった多くの環境で動きます。Javaで動くので当然Kotl…

【Java】Functionを使ってみる

タイトル通り、Java 8で追加されたFunctionが便利だったので書きます。 続き wrongwrong163377.hatenablog.com 関数型インターフェース関連でとても参考になるページ Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo) Function…

【プログラミング】CodeIQ用入出力類

CodeIQを色々な言語でやってると「入出力どうやったっけ」って場面が増えたり、出先でやる時作り直したりがダルかったりしたので、入出力類だけ自分用にまとめます。 CとC#は追加したいですが、とりあえずいったん飽きたのでこれまで。 gist.github.com

【Android】LinearLayoutをJavaコードから弄る

初期化 LinearLayout mLinearLayout = new LinearLayout(this); 水平/垂直の選択 mLinearLayout.setOrientation(LinearLayout.VERTICAL); //mLinearLayout.setOrientation(LinearLayout.HORIZONTAL); 部品の追加(他のViewやLayoutでも大体共通) mLinearLayou…

Androidで、JavaのActivityからc++のNativeActivityを呼び出す

Androidでは、c++のみで書かれるNativeActivityがあります。 github.com これは通常のActivityと同じように、別のActivityから遷移させることが可能です。 今回は、この遷移についてやった内容を記事にしました。 サンプルプロジェクト プロジェクト作成 Nat…

javaで、if文と%(剰余)のどちらが速いかを少しだけ比較

以前c++で実験してみたif文と%(剰余)の比較をjavaでもやってみました。 wrongwrong163377.hatenablog.com 実行環境 実行環境は以下の通りです。 OS Windows10 Pro CPU Core i7 6700 MEM DDR4 2133CL13 8GBx2 JDK 1.8.0_131 実行したコード プロジェクト全体…