フロントエンド

refrectionを使った箇所でjava.lang.VerifyError: Bad type on operand stackでハマった話

kotlinでテストがしたい!! nhaarman/mockito-kotlinでテストをしようとしていたら、以下のようなエラーでひっかかりにひっかかった。 java.lang.VerifyError: Bad type on operand stack Exception Details: Location: kotlin/reflect/jvm/internal/ReflectionFactoryImpl.function(Lkotlin/jvm/internal/FunctionReference;)Lkotlin/reflect/KFunction; @5: invokestatic Reason: Type 'kotlin/jvm/internal/FunctionReference' (current frame, stack[2]) is not assig...

アノテーションの練習がてらバリデーターを自作

アノテーションの使い方は理解してたが、自作したことなかったので、バリデータを自作してみた。 ネーミングだったり細かいエラーなどは省略。 作成して分かったのは とりあえず作って分かったのは、@interfaceをつぶしの効くものにしないと@interfaceだらけになってしまうこと。 作りながら考えたのは Validator.java内で各Annotationのバリデーションロジックを書くのではなく、Annotationクラス自体が自分のバリデーションロジックを持たせて、Validator側を少し書き直せばValidato...

【Java】新年初コード:正規分布

あけましておめでとうございました 中心極限定理かなんかよく知らないけど、自然界の確率変数の分布は正規分布に従う事が多いっぽいし、ランダムに書くコード決めたら正規分布のコード書く人がいてもおかしくないよね! コード NormalDistribution.java public final class NormalDistribution { private final double mean; private final double variance; public NormalDistribution(double mean, double variance) { if (variance < 0.0) { th...

[読書メモ]Pattern-Oriented Software Architecture Volume 4 - Interface Partitioning(Pg. 272 ~ 297)

(What is)"Interface Partitioning" 実装とインターフェースを分離すること。 (Why)なぜする必要があるのか? 実装に対する変更が、クライアントに影響を及ぼさないようにするため。 各パーツごとに開発できるようになることで、開発効率を上げるため。 Introduction to Interface Partitioning Interfaceは名刺のようなものです。 コンポーネントが何をするか、何を結果として返すか、処理の実現のために何が必要か(引数など)をクライアントに対して明確に表明する必要がある。...

macのzshでjava7/8を簡単に切り替える

以下のコードを~/.zshenvに追記しsourceしてjava7もしくはjava8すれば切り替えられます Yosemiteとかで確認(雑 alias java7='setjdk 1.7' alias java8='setjdk 1.8' function setjdk() { if [ $# -ne 0 ]; then removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin' if [ -n "${JAVA_HOME+x}" ]; then removeFromPath $JAVA_HOME fi export JAVA_HOME=`/usr/libexec/java_home -v [email protected]` export PATH=$JAVA_HOME/bin:$PATH fi } functio...

JavaプログラマがGo言語を触ってみた(cobraでCLIを作ってみた)

ども、keita69sawada です。 Go言語で「CLIを作成するときに良いパッケージないかな?」と探してみるとcobraを見つけました。 じゃ、「cobraについて調べてみるか!」と ウニウニしたのがこの記事です。 対象読者 Go言語でCLIを作成する人。 前提条件 windows10(home)の環境 golangがインストール済み ※ 環境はchocolateyでのセットアップがおすすめ。こちらも参照 はじめに cobraって何ができるの? テンプレートを自動生成ツールcobra/cobraでベースとなるソースを作成し、 用意され...

Pleiades All in one Eclipseを用いたStruts2公式ブランクプロジェクトの導入

まえがき かつてStruts2の導入は非常に手がかかる問題がありましたが、mavenの導入ならびに初期設定が完了しているブランクプロジェクトの入手により、すぐに開発が可能です。 このブランクプロジェクトは「アーキタイプ(archetype)」として公式サイトから提供されています。 今回はmavenが導入済みであるEclipseのPleiades All in one Eclipse 4.5.x, 4.6.x での導入手順について紹介します。 Eclipseのmaven設定 まずEclipseの設定から、Struts2のアーキタイプを導入するmavenの設定...

MavenでのCOMPILATION ERRORを解決

eclipseでプロジェクトをビルドした際に、Mavenのこんなエラーが出て半日ほど躓いたので、解決法やチェックポイントを残す。 環境 Windows 7 JDK8 eclipse 4.6 neon COMPILATION ERROR [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] --------------------------------------------------...

【レポート】Javaのプログラムはどうやって動いているの?

情報 【東京】【初学者向け】JJUG ナイトセミナ 「Javaのプログラムはどうやって動いているの?」 日時: 2015/04/24 19:00-21:00 会場: 日本オラクル株式会社 講師: 櫻庭 祐一 Web: http://www.javainthebox.com/ 連載中: java技術最前線 概要 前半(JVM編) JVMは実行時コンパイル(Just-in-Time Compile) Java -> classファイル -> バイトコード バイトコードはjavapで確認可能 5つの手順: JVM起動, クラスロード, リンク, 初期化, main実行 JVM起動: JNI_CreateJavaVM() クラ...

maven-javadoc-pluginのbuild時、javadocのoptionをアレコレ指定する方法

前提 環境はMac プロジェクトをMavenで管理しており、すでにmaven-javadoc-pluginが導入されていること。 pom.xml <project> … <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.4</version> <c...

macOS HighSierraでJavaに起因してRubyMineが使えないときの解決法

概要 macOSをSierraからHighSierraに上げたことで、RubyMineが使えなくなった。 RubyMineを最新バージョンの 2017.3 にしても解決せず、JREのバージョンを変えたり、再インストールしたりと 丸一日掛かったが、原因は別のところにありました。 解決方法 macOS再インストールだけ OSに問題が有るなんておもわねーよ! macOSにはJavaランタイムがもともと入っている?みたい。 (Javaコントロールパネルはないが) なのにRubyMineが起動しなかったので、じゃあJavaを入れてやろうじゃねえか...

十字の壁がそそり立つ世界の中を君は螺旋状に歩く (規則性、Python/Ruby/C/C#/Java)

問題 http://nabetani.sakura.ne.jp/hena/ord28spirwa/ シミュレーション (Python/Ruby/C++) http://qiita.com/cielavenir/items/8c77a158136bd668a27b 規則性 (Python/Ruby/C/C#/Java) http://qiita.com/cielavenir/items/a285b0cea4a26ff886b8 規則性 (D/Go/Swift/PHP/ Vala ) http://qiita.com/cielavenir/items/edb1daff9ea861a418ec 規則性 (VB/F#/Perl) http://qiita.com/cielavenir/items/0c84af4049ab161f82c1 規則性 (PowerShell) http://qiita.com/cielavenir/items/d9ef9f1...

Clojure/Javaでショートカットキー(Global Hotkey)を作る

Clojure/Javaでお手軽にGlobal Hotkey(フォーカスなくても動くショートカットキー)を作るにはJKeyMasterが便利です。 ※ClojureでラップしたKeymaster-cljもありますが、バージョン0.1.0だとバグっててresetしたときにハングします JavaのサンプルはJKeyMasterのページにあるのでClojureのサンプルを作ってみます。 依存設定は[com.github.tulskiy/jkeymaster "1.1"]です。 hotkey.clj (ns hotkey.sample (:import [com.tulskiy.keymaster.common Provider HotKeyListener]...

SwaggerでRESTful APIの管理を楽にする

背景 最近は変化し続ける要件に対応するために、システムも柔軟であることが求められています。 そのため、部分的に変更やスケールの可能なシステムを構築し、API経由で連携するマイクロサービス的アーキテクチャが増えてきています。 そういった設計の中で問題になっていくのが、従来のモノリシックなアプリケーションではIDEやコンパイラなどで行っていた、機能間のインターフェイスをどう管理するかという部分です。 Swaggerとは? SwaggerとはRESTful APIのドキュメントや、サーバ...

Java8時代のフレームワーク Spark Framework

Spark Frameworkとは RubyのSinatoraというフレームワークにインスパイアされて作られた、シンプルなウェブ・アプリケーション・フレームワークです。 Java8のLambdaをサポートしていて、シンプルに記述することが可能です。 組み込みのWebサーバが内蔵されているため、APサーバを別途建てること無くアプリケーションを実行することが出来る点もイマドキな感じがします。 http://sparkjava.com ScalaでもScalatraというSinatra Likeなフレームワークが有り、それを使っていた身として...

Java8でJPAでHibernateでJinqを使うメモ

依存関係はこんな感じに設定しました。 <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.8.Final</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</ve...

Eclipseのホバーが見にくい時

自分のSTS(Eclipseを元にしたspring bootのIDE)のテーマを黒にしたらエディタのホバー(クラスとかにマウス当てると詳細出てくるやつ)がすごく見にくいのでその改善 ※今回はJavaなので各言語に置き換えてください [環境設定]→[General]→[Color and Fonts]→[Javadoc text color]を自分が設定した色以外に。 例)自分は黒にしたので白に。 無事ホバーが見えました。

JDTでJavaのソースコード解析を行う

注意書き 情報を集めたのが数年前なので、より新しい方法が存在する可能性があります。 対象者 Javaのコードを簡単に解析したい Eclipseのプラグイン以外で解析したい Eclipseのプラグインの一機能として解析を行う場合は、より簡単に行うことができます。 本ページでは、独立したツールとして解析を行う場合を対象とします。 背景 Eclipseとは? Java使いならきっと使ったことのある、有名IDE。 ちなみに自分はIntelliJ IDEAに乗り換えています。 というより、Java書いてない……。 JDT...

Javaだって簡単にFizzBuzz書けるもん! ~ 匿名クラス利用

もうちょっと簡単なFizzBuzzを探ってみました。 ではコードをどうぞ。 package reflect2; import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class FizzBuzz { public static interface Dummy { default CharSequence trans(int i) { return "" + i; } } public static void main(String[] args) throws Exception { new Dummy(){{ new Dummy(){...

JAX-RSでコンテキストの取得

JAX-RSのリソースクラスのメソッドの中で実行環境に関する情報(コンテキスト)を取得できる。何が取得できるかとはJSR-339のSection-9.2に記述してあるもの(Application・UriInfo・HttpHeaders・Requestなど)とサーブレットの場合は10.1に上げられているもの(ServletConfig・ServletContextなど)が取得できる。ただしJAX-RSを使っているときにサーブレットコンテキストに頼るような構成はあまりやらないほうが良いらしい。 具体的な情報は@Contextアノテーションを使って取得する。以下...