2. Javaはダサい! ● 記述がめんどう – セッターゲッターとか ● 記述がださい – クロージャーないの? ● フレームワークがださい – やたらファイルが必要 – 記述がめんどい
2. Javaはダサい! ● 記述がめんどう – セッターゲッターとか ● 記述がださい – クロージャーないの? ● フレームワークがださい – やたらファイルが必要 – 記述がめんどい
Struts1職人の朝は早い。 「毎日毎日DBとアプリサーバーが違う。機械ではできない」 「このstruts-config.xmlはダメだ。ほら、すぐ裂けてしまう」 ここ数年はLLとScalaに押されているという。 下町Struts1の灯火は弱い。だが、まだ輝いている。 「やっぱりアレですね、たいていの若い人はすぐやめちゃうんですよ」 「それを乗り越える奴もたまにいますよ。そういう奴が、これからのStruts1界を引っ張っていくと思うんですね」 今日も彼は、日が昇るよりも早くstruts-config.xmlの整形を始めた。明日も、明後日もその姿は変わらないだろう。 そう、Struts1職人の朝は早い。 夜も遅い。
実際に学校で教えてくれるかは別として System.out.println()について考えてみよう。System.out.println()は、Javaを勉強しようとする人が初期の段階から利用するメソッドである。が、しかし、実は謎だらけなのである。 まずは、System.out.println()を分解して考えてみる。 Systemはjava.lang.Systemである。 outはjava.lang.Systemのフィールドである。 Systemクラスのjavadocを眺めると、outの型はPrintStreamであることがわかる。 PrintStreamのjavadocを眺めると、printlnメソッドが存在する。 つまり、System.outにPrintStreamのオブジェクトが代入されていて、そのオブジェクトのprintlnメソッドを呼んでいるだけでる。このメソッドを実行すること
本家:Commons CLI – Home javadoc(1.x):http://commons.apache.org/cli/api-release/ コマンドラインオプション解析ライブラリの定番ってなんだろう。Commonsブランドを選んでみたが開発状況が微妙。 1.1をつかってみた。 command --limitsize 1000 -n "hoge hage" input.txt output.csvみたいなコマンドラインを解析してみる。 OptionsオブジェクトにOptionオブジェクトを登録。CommandLineParserにOptionsとString[] argsを渡してCommandLineオブジェクトを得る。 public class ApacheCLITest { public static void main(String[] args) { // comma
1.6より追加されたStandardJavaFileManagerを使用して、指定パッケージ内のクラス一覧を取得するサンプルです。 import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileManager; import javax.tools.JavaFileObject; import javax.tools.StandardLocation; import javax.tools.ToolProvider; ... JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaFileManager fm = compiler.getStandardFileManager(
シンガポールでアジアのエンジニアと一緒にソフトウエア開発をして日々感じること、アジャイル開発、.NET、SaaS、 Cloud computing について書きます。 小生、プログラムに使った最初の言語は、BASIC。そう、あの有名なBASIC。Visual Basicではない。Bill Gatesが、ハーバードの学生だったころ、Microsoftか、それともその前身の名前の会社だったのだか定かではないが、自分たちで作って、それをまんまと、当時の米国のホビーストのマシンだったAlltairに売り、さらにIBMにまで使わせることに成功した、あのinterpreter言語だ。 BASICを使って、私も、学生のころ、当時日本で売られていたSharpの『マイコン』で、色々とゲームを作った。ASICだと言ってもバカにしてはいけない、学生時代はゲームだったが、それなりに物理や数学を駆使したアプリだった
mac os x 上の eclipse から JDK のソースを参照しようとしたところ、 src.jar が見つからない。 どうやら、手動でインストールする必要があるらしい。 インストール手順: Mac Dev Center (http://developer.apple.com/devcenter/mac/) からログイン。 ADC Member Site (http://connect.apple.com/) にアクセス。 Downloads - Java のリンクをクリック Java Developer Package for Mac OS X 10.6 Update 3 (Disk Image) のリンクをクリックすると、ダウンロード開始。 →javadeveloper_10.6_10m3261.dmg ファイルのダウンロードを開始する。 javadeveloper_10.6_10
環境はmac OS X 10.6 下記を参考に。 Java API のソースコードを見たいのに Mac に src.jar が入ってない? - YKMbPP Java/Eclipse on MacOSX: where is the src.zip ? - Stack Overflow 上記に書いてあるパスをあたってみたけど、src.jarが見つからない。 ユーティリティ>Java Preferencesから最上段のJava SE 6をダブルクリックしたら、jdkに飛べた。そこから辿ったらsrc.jar発見。 /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/src.jar EclipseのJava>Installed JREsでは /System/Library/Frameworks/JavaVM.fr
Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基本文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基本的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの本来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具
サンフランシスコ発--Oracleの最高経営責任者(CEO)であるLarry Ellison氏は、Googleに対する特許および著作権侵害訴訟の公判2日目にあたる米国時間4月17日午前、証言をした。 Oracleの弁護団が最初に呼んだ証人は、厳密な意味で言えばGoogleのCEOであるLarry Page氏だった。しかし、Page氏の証言は同氏が2011年8月に行った宣誓証言の映像という形で提示されたため、サンフランシスコの米連邦地方裁判所で最初に証言台に立ったのはEllison氏だった。 開発者はJavaでプログラムを記述する際、2つの異なることを行う、とEllison氏は説明した。つまり、それはJavaプログラミング言語を使用すること、そして、その後において、あらかじめ記述されたJavaプログラムのライブラリを再使用することである。 APIの開発には費用がかかるのかという質問を受けた際
Java, Advent Calendarこの記事は Java Advent Calendar 2011 の一環で書いてます。詳細はこちらを参照してください。昨日の id:ttmmrr さんの記事はこちら (2012年の公休日とか)JTableのフィルタリング - ttmmrr(@o_tmr)の日記たまたま、いま作ってるプログラムで、Javaプログラマに役立ちそうな部分があったので、その部分を抜き出して公開することにしました。今回はその紹介をしようと思います。 「インタフェースこそが型である」世界Java: The Good Parts という本がありまして、その3章において、(私の理解としては)Javaにおいて、型とはインタフェースのことあり、クラスは型に実装を提供するものであり、すべてのクラスはインタフェースを備えるべきだ、とかいう意味の論が展開されてます。インタフェースはクラスから型
はじめに Javaを初めて覚えようとするとき、多くの人はどのような順番に学習していくでしょうか。Java文法、基本的なクラスライブラリ、ファイルの入出力やスレッド、そしてAWT/Swing。大体、このあたりまで一通り使えるようになったところで、「そろそろビギナー卒業かな?」と思うのではないでしょうか。 が、「一通り覚えた」と「マスターした」は大きく違います。中でも、特に注目してほしいのが、Swingです。Swingは非常に大きなライブラリであり、そう簡単にマスターできるものでもありません。が、「AWTの強化版だろう」ぐらいなつもりで、JButtonやJFieldなど主なコンポーネントとイベント関係を一通り使ってみて「わかった、わかった!」と通過してしまった人は意外に多いんじゃないでしょうか。 こうした「通り一遍にSwingを通り過ぎてしまった人」のために、もう一度改めてSwingの機能をお
リモートデバッグとは、JavaVMプロセスとTCP/IP通信しながらデバッグを行う仕組みを利用したデバッグ手法を指します。 TCP/IP通信ですから、Eclipseが動作しているマシンとは別のマシンで動作しているJavaプロセスと通信してデバッグすることもできます。デバッグ対象は別OSでもいいですし、Eclipseが導入されている必要もありません。 より抜粋 俺は恥知らずなJava使いなので今までこの機能の存在知らなかった……ので、試す。書いてあることはEclipse wikiとほとんど同じことです。 こんな環境でやりました windows XP jdk 1.6.0_16 Eclipse 3.7 普通のJavaアプリケーション まずはEclipseでJavaプロジェクトを作って適当なクラスを作る。 public class Hello { public static void main(S
Webアプリだとホットリローディングできるフレームワークがあったり、NetBeansが勝手にビルド・デプロイしてくれたりして、ソースコードのビルドなどを気にしなくてもいいようになってきてるんですが、Swingアプリではホットリローディングができるというのはなかなかなかったわけです。 で、このJaveleonというのが、Javaアプリケーションでホットリローディングできるようにするツール。 http://javeleon.org/ ライブラリじゃないので、普通に作ったSwingアプリなどでホットリローディングできます。 ここではNetBeansプラグインとして使いますが、javaコマンドにパラメータ付加するだけなので、Eclipseなどでも使えるようです。 インストール NetBeansのアップデートセンターに、次のURLを追加します。 http://javeleon.org/javeleo
Streaming API for XML (StAX) の使い方 以下の節では、Streaming API for XML により XML ドキュメントの解析と生成を行う方法について説明します。 Streaming API for XML の概要 XMLStreamReader インタフェースによる XML の解析 : 一般的な手順 XMLStreamWriter インタフェースによる XML の生成 : 一般的な手順 XMLInputFactory インタフェース用に定義されたプロパティ XMLOutputFactory インタフェース用に定義されたプロパティ Streaming API for XML の概要 Java Community Process の JSR-173 で定義されている Streaming API for XML (StAX) を使用すると、XML ドキュメント
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く