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な変数を持たせる方法とかで解決していたようです。
宣言
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#にはあった機能。
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
どこかの解説の焼き直しになるといけないので、他のサイトを見ずに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
以下、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
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
以下は参考にしたサイトです。
いろいろ触った結果をこれから書いていくかもしれません。
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
少し前の話になりますが、WordとExcelのViewerの最新版がMicrosoftから出ています。
Word Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=95e24c87-8732-48d5-8689-ab826e7b8fdf&DisplayLang=ja
Excel 2003 Viewer
http://www.microsoft.com/downloads/details.aspx?FamilyID=c8378bf4-996c-4569-b547-75edbd03aaf0&DisplayLang=ja
ついでに以前に出ていたものも。
PoweroPoint 2003 Viewer
http://www.microsoft.com/downloads/details.aspx?FamilyID=428d5727-43ab-4f24-90b7-a94784af71a4&displaylang=ja
Word Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=95e24c87-8732-48d5-8689-ab826e7b8fdf&DisplayLang=ja
Excel 2003 Viewer
http://www.microsoft.com/downloads/details.aspx?FamilyID=c8378bf4-996c-4569-b547-75edbd03aaf0&DisplayLang=ja
ついでに以前に出ていたものも。
PoweroPoint 2003 Viewer
http://www.microsoft.com/downloads/details.aspx?FamilyID=428d5727-43ab-4f24-90b7-a94784af71a4&displaylang=ja
.NETネットワークプログラミング
http://www.atmarkit.co.jp/fdotnet/special/networkprog/networkprog_01.html
.NETでネットワーク・プログラミング入門の記事。.NETでこの手の記事は見たことが無かったような気がします。TCP/IPプロトコルやOSI階層モデルも少し触れているので、よく知らないなら一読の価値ありだと思います。趣味で作っていたC#プログラムに通信機能を付けたかったのでちょうど良い記事でした。
.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など)で書けるそうで、記事中ではコマンドを実行するプラグインが例題として扱われています。いろいろと面白そうなことが出来そうですね。
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); // 注文の発
}
}
}
今現在、買いから入るか売りから入るか考え中ですが、
とりあえず買いから入ることにしています。
以下ソースコードです。
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); // 注文の発
}
}
}