weblog

技術的なメモ置き場。

Java9 コレクションのファクトリメソッド

Java9の新機能を試す。 今回はコレクションのファクトリメソッド。 生成されるオブジェクトはイミュータブル。 List List.of(1, 2, 3); // nullを含むとエラー List.of(null); Map keyとvalueを交互に指定する。 Map.of("foo", 1, "bar", 2); // keyが重複す…

VS CodeでSpring Boot

VS CodeのチュートリアルにSpring Bootがあったので試してみた。 code.visualstudio.com 事前準備 VSCodeのインストール JDKのインストール(今回はversion 1.8.151) 環境変数JAVA_HOMEの設定 Mavenのインストール 拡張機能 VS CodeにJava Extension Packをイ…

macでJAVA_HOMEを設定する

.bash_profile に以下を追記する。 export JAVA_HOME=`/usr/libexec/java_home -v 1.8` -v 9 を指定するとJava9を指定できる。 $ source ~/.bash_profile $ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

【Java】 Stringのおさらい

Stringのおさらい。知らなかった仕様もあったので油断ならない。 ※ 一部省略している部分もある コンストラクタ 引数なし new String(); // "" バイト配列 byte[] bytes = "abcde".getBytes(); new String(bytes); // abcde new String(bytes, 1, 2); // bc …

【Java】try-catch-finally文

try-catch-finally文の順序は変えられない。 // OK try {} catch(Exception e) {} finally{} // NG try {} finally{} catch(Exception e) {} // NG try {} finally {} finally {} catchブロックとfinallyブロックにreturnがあった場合どうなるか? try { // …

【Java】for文

for文は、初期化文・条件文・更新文・繰り返し処理で構成される。 for (初期化文; 条件文; 更新文) { 繰り返し処理; } 初期化文と更新文は複数記述できる。 初期化文で宣言できるのは同じ型の変数。 for (int i = 0, j = 0; true; i++, j++) {} // 更新文で…

【Java】識別子

Javaの識別子(変数、メソッド名、クラス名など)には、以下の規則がある。 予約語は使用不可 数字から始められない 下記の記号以外の記号は使用不可 アンダースコア 通貨記号 通貨記号を使ってみると以下のようになる int ¤ = 1; // 国際通貨記号 int ฿ = 2…

【Java】クラス宣言

Javaのクラス宣言は、 フィールド と メソッド の2つから構成される。 パッケージ宣言、インポート宣言は含まれない。 これらはソースファイルに対する宣言であり、クラスに対するものではない。 // パッケージ -> クラス宣言ではない package chapter01; //…

Comparatorでソート

Comparatorを使用して、JavaBeanのリストをソートする。 使用するJavaBean public class Student { private int id; private String name; private int age; // getter/setter } 今回、Studentに設定するデータはJSONで定義する。 JSON -> Java Objectの変換…

Stream#collectを使用してJavaBeanリストから特定のフィールドのみを取得してリスト化する

public class Hoge { private String foo; private String bar; // constructor/getter/setter } Stream#collectを使用してHoge#barのリストを作成する。 // Hogeリストを作成 List<Hoge> hoges = Arrays.asList(new Hoge("f001", "b001") , new Hoge("f002", "b00</hoge>…

Spring Test DBUnitでJSONカラムにデータを投入する

Spring Test DBUnitで @DatabaseSetup を使用してテストデータを投入する際に、対象のテーブルにJSONカラムが存在すると失敗するが、PostgresqlDataTypeFactoryを拡張することで投入できるようになる。 環境 Spring Boot 1.4.1 Spring Boot Test Starter Spr…

macOSにPostgreSQLをインストール

Homebrewを使用して、macOSにPostgreSQLをインストールしたので、その時の記録として残す。 環境 macOS (10.12.1) PostgreSQL (9.6.1) Homebrew (1.1.2) Homebrewのアップデート $ brew update $ brew doctor PostgreSQLのインストール $ brew install postg…

Spring BootでセッションIDを取得する

意外とセッションIDの取得方法が見当たらなかったのでメモ。 Controllerメソッドの引数に、HttpSessionかHttpServletRequestを使用することでセッションIDを取得することができる。 public class HogeController { // HttpSessionを使用する場合 @GetMapping…

Elixir環境構築

環境 OS X (10.10.5) Elixirのインストール Homebrewを使用する $ brew install elixir エディタ 今回はAtomを利用する 以下のパッケージをインストール language-elixir atom-elixir iex linter-elixirc

閉包テーブルの更新(その2)

SQL

前回の閉包テーブルに道程(path_length)を追加する。 道程を追加することで、子や孫を取得しやすくなる。 サンプルテーブル CREATE TABLE ctable ( ancestor BIGINT NOT NULL , descendant BIGINT NOT NULL , path_length INT NOT NULL -- これを追加 , PR…

閉包テーブルの更新(その1)

SQL

閉包テーブル(Closure Table)の更新について書く。 閉包テーブルについては以下を参照。 lab.kochlein.com サンプルテーブル CREATE TABLE folders ( folder_id SERIAL PRIMARY KEY , name TEXT NOT NULL ); CREATE TABLE ctable ( ancestor BIGINT NOT NU…

CentOS7 にPostgreSQL9.5をインストールする

CentOS 7 に PostgreSQL 9.5 を インストール する

GitHubで2段階認証設定した際のeclipse側の対応

GitHubで「Settings」 → 「Personal access tokens」でトークンを生成する。 生成されたトークンをコピーする。 eclipseからGitHubのリポジトリにアクセスする。 パスワードを入力するフォームが表示されたら、コピーしたトークンを入力する。

Gitメモ

git git fetch ・・・ リモートリポジトリから最新を持ってくる git log FETCH_HEAD ・・・ fetch_headのログ git merge FECTH_HEAD ・・・ fetchした内容をマージ git push リモート ローカル ・・・ push git checkout HEAD^ {ファイル名} ・・・ ファイル…

四角形を描く

Processing で四角形を描く 四角形rect(x, y, width, height);x, y → 座標width → 幅height → 高さ例rect(10, 10, 50, 50);塗りつぶしfill(red, green, blue);例fill(0, 0, 255);rect(10, 10, 50, 50);塗りつぶさないnoFill();例noFill();rect(10, 10, 50, 5…

直線を描く

Processingで直線を描く直線を描くline(x1, y1, x2, y2);x1, y1 が起点x2, y2 が終点例line(0, 0, width, height);例line(0, 30, width, 30);line(0, 60, width, 60);色を設定するstroke(red, green, blue);0 〜 255を指定する。例赤い線を描くstroke(255, 0…

Processingで補完

Processingの補完環境を構築する。1.processing-javaのインストールPDEを起動し、Tools → Install "processing-java"を実行する。2. Sublime TextのインストールSublime Textをインストールする。http://www.sublimetext.com/3. Processingパッケージのイン…

Processingをはじめる

公式サイト https://processing.org/ DownloadからIDEをダウンロード。 とても簡素。 補完が使えないので不便。 [普及版]ジェネラティブ・アート―Processingによる実践ガイド 作者: マット・ピアソン,Matt Pearson,久保田晃弘,沖啓介 出版社/メーカー: ビー…

Xamarinの表示設定

Xamarinの表示設定でわかったことのメモ・パッドの表示非表示パッド = eclipseのビューソリューションパッドを閉じてしまった場合ビュー → パッド → ソリューションで再度表示させることができる

macでC#開発環境構築

macでC#開発環境構築メモXamarin(ザマリン)を利用する1.Xamarinのダウンロード名前等を入力してダウンロードhttp://xamarin.com/download2.Xamarinのインストールダウロードしたインストーラーを起動する必要な項目を入力していけばOK完了したらXamarin Stud…

Homebrewでインストールしたgitを使うまでのメモ

Homebrewでインストールしたgitを使うまでのメモ1.gitのインストールbrew install git2.バージョンの確認git --versionこのままだとmac標準のgitが実行されるgit version 1.8.5.2 (Apple Git-48)3.PATHの変更sudo vi /etc/pathsを実行し、/usr/local/binを先…

MacのApache関連メモ

いつも忘れるのでメモMacのApache設定ファイル格納ディレクトリ/private/etc/apache2再起動sudo apachectl restart

JavaMailでhotmailの送信を行う

JavaMailでhotmailの送信を行うProperties props = new Properties();props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.host", "smtp.live.com");props.put("mail.smtp.starttls.enable", "true");props.put("mail.smtp.auth"…

DBUtilsを使う

Apache Commons DBUtilsの使い方メモDBUtils1.5http://commons.apache.org/dbutils/index.html・抽出QueryRunner qr = new QueryRunner();ResultSetHandler> rsh = new BeanListHandler(T.class);List list = qr.query(Connection, "SELECT * FROM HOGE;", r…

Java開発環境メモ

macのJava開発環境構築メモeclipse 4.2eclipse日本語化tomcat 7eclipseのインストール・eclipseをダウンロードhttp://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/junosr1ダウンロードしたファイルを解凍し、適当な場所におく。今回…