ふぁんくしょん -4ページ目

J2SE5.0の新機能(3)enum

Enumerated Types

宣言
public enum Color { black , white };


void put(Color color,int x,int y)
{
if(color == Color.white){ .... }else{ .... }
}

enumは定数をひとまとまりにする用途に用途に使えます。型名が付くので定数より便利になります。
C++やC#にはあるのですがJavaにはありませんでした。これが導入される前はprivateなコンストラクタしかないクラスにstatic finalな変数を持たせる方法とかで解決していたようです。

J2SE5.0の新機能(2)Autoboxing

Autoboxing and Auto-Unboxing of Primitive Types

Before

Integer i = new Integer(1);
int j = i.intValue();

After

Integer i = 1;
int j = i;

自動でプリミティブ型とそのラッパークラス間の変換を行ってくれる機能です。標準ライブラリのコンテナにはプリミティブ型を入れることができないので、こういう機能があると便利です。C#にはあった機能。

J2SE5.0の新機能(1)

J2SE5.0(Tiger)の新機能について書いてみようと思います。とりあえずまとめ(リンクの紹介)から。個別の機能については次回以降で扱おうと思います。英語が読める方は下のリンクを読んだほうが早いです。

どこかの解説の焼き直しになるといけないので、他のサイトを見ずにSunのページだけを参照して書いてみる事にします。(とは言っても以前見たものをある程度記憶しているので全くオリジナルではないかもしれません。)

J2SE5.0新要素に関するSunのページ
http://java.sun.com/developer/technicalArticles/releases/j2se15/
http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

ちなみに12/20にJ2SE5.0はUpdate1が出ています。バグフィックス中心のようです。
http://java.sun.com/j2se/1.5.0/download.jsp

その他いくつかリンク

APIドキュメント
1.5.0でなく5.0と呼ぶことについて

目次
Metadata
Generic Types
Autoboxing and Auto-Unboxing of Primitive Types
Enhanced for Loop
Enumerated Types
Static Import
Formatted Output
Formatted Input
Varargs

QRコードの技術情報

QRコード(2次元バーコード)について気になったので調べてみました。QRコード自体の仕様は一つしかないのですが、携帯用の仕様(urlやメールアドレスの書き方等)は各社微妙に異なるようです。どのキャリアでも読めるQRコードを書きたいと思っていて、どこかに資料(まとめているサイト)が無いか探しています。
以下、QRコードと携帯各社仕様へのリンクです。


QRコードドットコム
http://www.qrcode.com/

docomo
http://www.nttdocomo.co.jp/p_s/imode/barcode/

au
http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html

vodafone
http://www.dp.j-phone.com/dp/tool_dl/qrcode/tech.php

IEプラグインの作り方

Google Toolbarのようなものを作ってみようと思ったのですが、どう作ればよいのか良く分かりません。いろいろ検索した結果BHO(Browser Helper Objects)というものを作れば良いらしいです。何か出来たら報告するかもしれません。

Browser Helper Objects
http://www.microsoft.com/JAPAN/developer/library/jptech/msdnnews/top.htm

Browser Helper Objects: The Browser the Way You Want It
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/bho.asp

Browser Extensions
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/extensions.asp

Creating Custom Explorer Bars, Tool Bands, and Desk Bands
Creating Custom Explorer Bars, Tool Bands, and Desk Bands


エクスプローラーにタブをつける
http://homepage1.nifty.com/munepi/products/b20020623.html
http://homepage1.nifty.com/munepi/articles/20020818.html

java5.0

いまさらながらですがTigerを触ってみました。とりあえず、printfとかautoboxingとかを体験。
以下は参考にしたサイトです。
いろいろ触った結果をこれから書いていくかもしれません。


http://java.sun.com/j2se/1.5.0/index.jsp

IBM Developerworks

http://www.alles.or.jp/~torutk/oojava/maneuver/1998/11-1.html

http://www5.airnet.ne.jp/sakuraba/java/laboratory/J2SE1.5/contents.html

Word,ExcelのViewer

.NETネットワークプログラミング

http://www.atmarkit.co.jp/fdotnet/special/networkprog/networkprog_01.html

.NETでネットワーク・プログラミング入門の記事。.NETでこの手の記事は見たことが無かったような気がします。TCP/IPプロトコルやOSI階層モデルも少し触れているので、よく知らないなら一読の価値ありだと思います。趣味で作っていたC#プログラムに通信機能を付けたかったのでちょうど良い記事でした。

C#でGoogle Deskbarのプラグインを作れる

http://www.atmarkit.co.jp/fdotnet/practprog/01deskbar/deskbar_01.html

Google Toolbarはブラウザに検索機能を付加するプラグインですが、Google DeskbarというWindowsのタスクバーに検索機能を付加するプログラムがあります。これのプラグインを.NET(C#,VB.NETなど)で書けるそうで、記事中ではコマンドを実行するプラグインが例題として扱われています。いろいろと面白そうなことが出来そうですね。

[カブロボ]目標額に到達したら売りのコード

三日目にある方法で一銘柄選んで全額投資(買い注文)します。この部分は秘密です。4日目以降は目標額に到達したら売り注文を出すようにしました。

今現在、買いから入るか売りから入るか考え中ですが、
とりあえず買いから入ることにしています。

以下ソースコードです。

 void 四日目以降処理(InvestmentAgent investmentAgent)
 {
 
  //目標額に到達したら手仕舞い。
  //実際には目標額に到達する値段で三日目に買った株の売り注文
    
  Stock[] stocks = investmentAgent.getStocks(); //取引対象銘柄全部の配列

  //このコード微妙。getHoldingでとってきたmapのイテレータをまわす方がきれい。
  for(int i = 0;i < stocks.length;i++)
  {
   Holding hold = (Holding)(investmentAgent.getPortfolio().getHoldings().get(stocks[i]));
   if(hold != null && hold.getNumber() > 0)
   {
    long temochi = investmentAgent.getPortfolio().getMoney();
    long price = (Constant.目標額 - temochi) / (long)hold.getNumber() + 1;
 
    SimpleStockOrder stockOrder = new SimpleStockOrder();
    stockOrder.setLimit(price); //指値(0なら成行)
    stockOrder.setLimitType(StockOrder.LIMIT); //指値注文
    stockOrder.setQuantityByNumber(hold.getNumber()); //売買限度単位数(明示的に単位数で指定)
    stockOrder.setStock(stocks[i]); // 注文の銘柄を設定
    stockOrder.setTradeType(StockOrder.SELL); // 売り注文に設定
    investmentAgent.order(stockOrder); // 注文の発
   }
  } 
 }