IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
Scalaでnullを使っていいのは小学生までだよねー、というのは冗談ですが、Scala文化圏ではnullを使わないのが原則です(いくつか例外はありますが)。代わりに出てくるのがOption型です。しかし、Scalaでは困ったことにnullを返すJavaのメソッドを呼び出さなければいけない場面がたくさんあります。 たとえば、以下のようなコードを書かなければいけない場面にはしばしば遭遇します。 val javaMap: java.util.Map[String, String] = javaObject.getMapping() val value: String = javaMap.get(key) // 型注釈はあえて付けている if(value != null) { ... } else { ... } さて、ここで困るのが、javaMap.get(key)はkeyに対応する値が入って
≪ 前の記事市民、Rubyからようこそお帰りなさい 次の記事 ≫開発環境の構築 きわめて短いコードでHTTPリクエストに対して Hello, Worldの JSONを返す 問い合わせをSQLで投げると結果の行列を返すRDBMSのように、REST的 JSON APIは HTTPで問い合わせを投げると結果を JSON形式で返す。RDBMSが返すのは常に二次元の表形式で表現されるデータだが、JSON形式だともう少し複雑な構造(階層など)を持ったデータも表現できる。 "Hello, world!"というメッセージ(但し、問い合わせに name というパラメータが含まれていた場合は "world" の代わりに nameの内容を用いる)とその文字列の長さを返す APIを Spring Frameworkと Scalaで実装したソースを例としてここに示す。 Hello, world! APIのソースコー
Javaから Rubyへ! ・・・そんな時期が、俺にもありました。 Rubyの記述力は Javaと比べて本当に魅力的で、設定より規約だ!ダックタイピングだ!なんていいながら一時期みんなして Railsに群がってたんだけど。互換性がそれほど重視されないから言語やフレームワークのバージョンアップに置いて行かれるとひどい目にあうし、タイプミスひとつさえテスト回してやらないと拾えないし、なにより実行速度がひどく遅い。そうこうしているうちに Javaの方はアノーションが積極的に使われる始めることで設定ファイルは小さくなったし、動的な型のほうが柔軟でいいというのは誰が言い始めたのか知らないが実は気のせいじゃないかと皆が気付き始めるのも無理はないのだ。 やあ、Javaへお帰りみんな。 そうして Javaに帰って来たはいいけど、やっぱりJavaでWebアプリケーションを作るのには極めて鬱陶しい要素が相変わ
≪ 前の記事サンプルコードを実行する 次の記事 ≫warファイルを Tomcat上で動作させる シーザーを理解するためにシーザーである必要はないように、Scalaを実行するために Scalaをインストールする必要はない 2013-10-25に gradle対応のため更新しました warファイルとは warファイルとは、所定のディレクトリ構造を持つ Java Webアプリケーションを圧縮してひとつのファイルにまとめたものである(圧縮フォーマット的にはzipと互換性がある)。アプリケーションを開発環境上で実行しているうちはまだ圧縮されていないバラバラのファイルだが、これを実際の運用環境(Tomcatなどの、アプリケーションサーバと呼ばれる物)に持って行って動作させるためには warファイルにまとめる必要がある。 warファイルの生成は gradleがやってくれる。そのためには、build.gr
≪ 前の記事warファイルを Tomcat上で動作させる 次の記事 ≫JSON APIを PHPから呼び出して結果を表示する 本当のことを言うと、顧客はあなたがどんな技術を使ってそれを実装するかに興味などない 顧客に「サーバは弊社ホームページのものが既にあるので、そこで動くシステムを作って下さい」と言われたら大抵そのサーバは(Windowsでなければ) CentOSである。比較的お金をお持ちなお客様であれば RedHatの時もあるが、同じことだ。 ※もしDebianを使っているとしたらそれは訓練されたお客様なので別の対応を要する CentOSのクローン元である RedHat Enterprise Linuxはきわめて保守的な Linuxディストリビューションで、やみくもに機能を追加せず互換性を維持することに多大な注意が払われている。よって OSが標準で提供しているソフトウェアパッケージの種
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
最近、ちょっと身の回りでコマンドライン引数の処理が話題に挙がりまして、ちょっとJava系でどんなのが使えるのか調べてみました。 ちなみに、もともと話が出たのはJavaでしたが、このエントリでは加えてGroovyとScalaも書きたいと思います。 実行するコマンドのお題は、以下とします。 指定されたメッセージを、指定された回数表示するコマンドLoopEchoを実装する 「-m」オプション(ロングオプション「--message」)で表示するメッセージを指定し、必須項目とする 「-c」オプション(ロングオプション「--count」)で表示回数を指定し、任意項目とする(デフォルト値:3) Java/args4j このエントリを書く元になった仕事の上では(残念ながら自分が実装するわけではないので)、Commons CLIになったのですが、今回はこちらを使用したいと思います。 args4j : Jav
最近いくつかlombokが話題になってた lombokで快適Java生活 サイバーエージェント公式エンジニアブログ JavaでIDEのアクセッサ生成よりlombokを使ったほうがいい理由 Java特有の冗長なコードを簡潔に記述する「Lombok」 codezine ので、twitterなどでは何度かつぶやいた私見を、改めてblogにも書いておこうかと思います。Scalaもlombokも好きなので、ある意味「Scala使えばいいじゃん」という単純な意見に対する反論でもあります。 lombok自体のそれぞれの細かい機能の紹介は、先ほど上げたリンク先で既に語られてるのでしません。 lombokがScalaに比べて優れている点 IDEの恩恵 (自分はeclipseである程度やっていましたが)ほぼ素のJavaを書いているときと同じくらいの快適さです。対して、Scalaでは、IDEAだろうがeclip
4/4-5 に行われた JavaOne Tokyo 2012 の JVM言語BoFに、スピーカーとして参加してきました。 BoFの概要は以下のような感じです。 JavaVM上で動作するさまざまなプログラミング言語 (Groovy、JRuby、Scalaなど) のコミュニティや興味を持つ個人が集まって、各言語のチュートリアルや最新情報、使用実績などの情報交換を行います。プレゼンテーション、各言語を使ったコーディング大会、ライトニング・トークなどの形式で、ユーザ間の交流を促すBoFとして開催し、言語を超えて活用が進むJavaVMの日本ユーザの裾野を広げます。飛び入り参加大歓迎、楽しい時間にしたいと思います。 https://oj-events.jp/public/session/view/173 僕は ScalaJP からコーディング大会の Scala 担当として発表させて頂きました。 あのじ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く