トップページ⇒tech
982コメント338KB

ネタ心者歓迎!今更ながらにJava相談室 その4

レス数が900を超えています。1000を超えると表示できなくなるよ。
00011NGNG
                        
 || ̄ ̄|   ∧_∧
 ||Java|  (     )   ∧∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||__|  ( ○  )  (   ) < 俺達の旅はここから始まる。
   ||    │ |  │   /  |    \___________
((二二)) .(_(__)〜(___ノ

( ゚Д゚) < カキコする前に>>2-10をチェックしとけゴルァ!!
>>2 過去スレの一覧
>>3 Javaの基礎と よくある質問 (初心者はここをチェック!)
>>4 Java関連スレいろいろ
>>5 Javaを撲滅させたい方、死滅を心配してる方、Cとの違いを知りたい方はこちらへ
* 諸般の事情により、リンクがずれる事もあります。
0821デフォルトの名無しさんNGNG
>>820
まずいのは while(){} が無駄に CPU パワーを消費していること。
前のソースだと CPU 使用率 100% がずっと続くのでまともな
アプリケーションにはならない。もし「それ」をその本の例でやっ
てるなら捨てて良し。いや、むしろ晒せ。

System#currentTimeMillis() はぜんぜん問題ない。
0822デフォルトの名無しさんNGNG
誰か可愛そうな >>803 に愛の手を。
0823デフォルトの名無しさんNGNG
>>818
Class型はそう使うのか・・・。
でもinstanceofって何故かなじめない・・・。
予約語がbooleanを生成するのが何故か不自然な感じ・・・。
まあ良く使えばそのうち馴染むだろうけど。
0824デフォルトの名無しさんNGNG
>>823
馴染めないで良い。
instanceof を使わなければ何かが出来ない時は、設計者として負けた時だと思え (極論だが)。
0825デフォルトの名無しさんNGNG
>>824
だな。
むやみやたらにinstanceof使ったif文が出てくるソースは見たくない。
0826777NGNG
>>786
貴重な情報ありがとうございます!
エンコードソフトは1.4で作成します。
にしても、正式版いつ出るんでしょうね〜

SJIS != MS932だよね?
0827デフォルトの名無しさんNGNG
>>824
リフレクション絡みや、ダイナミックプロキシとかの
メタプログラミングの手法を取り込んでるときは、
instanceofなしは難しいと思うぞ。フレームワークっ
ぽいの作る時は、汎用性を上げようとするとどうしても…
RMIとかも、バリバリ使ってるみたいだ。
0828デフォルトの名無しさんNGNG
>>803
何事もなかったかのように、マイクロソフト拡張をオンにして、
Windowsアプリをバリバリ書く。
0829デフォルトの名無しさんNGNG
JDBCについて教えてください。
ConnectionからPreparedStatementを取得するけど、
Connectionを閉じてしまっても、そのコネクションから
取得したPreparedStatementはその後も使いまわせますか?
0830780NGNG
イメージバッファに文字を書いて
その文字ピクセルをいじれればとおもったのですが
MemoryImageSourceのバッファをGraphicsで扱えないんでしょうか?
0831デフォルトの名無しさんNGNG
>780
PixelGrabber使えばImageオブジェクトから
ピクセル値をbyte配列で取り出せるよ
0832デフォルトの名無しさんNGNG
>>831

けどさ、PixelGrabber って、普通に自前で生成した BufferedImage に対して
使うと、実はちょっと変になって出力されたりしないか?


Shape s = new Polygon(〜〜);
Graphics2D g = (Graphics2D)imageBuffer.getGraphics();
g.draw( s);
g.fill( s);

なんか、fill メソッドに Shape オブジェクトを渡して塗ろうとしたときに変に
なるんだよね。塗られる位置が 1ピクセルほどズレたりする。


これは俺の予測では、Raster と SampleModel をしっかり調整しないとダメっぽ
いような気がしている。

俺はもうこの時点で、疲れて別の代替策を考えたけど・・・< Shape オブジェクト
で塗る。
0833デフォルトの名無しさんNGNG
Windows98 系で動く EJB サーバなんてあるでしょうか?????
0834デフォルトの名無しさんNGNG
>>833
Win98系でEJBサーバ動かす意味なんてあるでしょうか???
0835デフォルトの名無しさんNGNG
>>834

都合により、どうしてもやりたいんですが、、、
やはり、存在しないんですかね。
0836デフォルトの名無しさんNGNG
>>832

追記。
PixelGrabber が悪いわけじゃなくて、BufferedImage の fill メソッド
がちょっとおかしいじゃないか?

というお話し。
0837デフォルトの名無しさんNGNG
>>835
PureJavaで出来てれば、動く事は動くでしょ。
起動用の環境設定のやり方を教えてくれるネタがないだけで。
0838デフォルトの名無しさんNGNG
>>829
無理。同時に PreparedStatement もクローズされる。
つーか、やってみりゃいいだろ。
0839デフォルトの名無しさんNGNG
>>835
保証外ってだけで動いてしまうものもけっこうあると思われ、、、
0840デフォルトの名無しさんNGNG
>>833
大抵の Windows 用 EJB コンテナは動くとおもわれ。
0841デフォルトの名無しさんNGNG
>836
BufferedImageにピクセル単位でアクセスしたいときは
WritableRaster使うのが普通なんでないの?
0842 NGNG
Windows98でEJBの勉強しようかなと思って
J2EEをDLしてきて、"j2ee -verbose"を実行しようとしたら
"構文が違います"というエラーがでました。

調べたら%J2EE_HOME%bin\setenv.batの
set JAAS_OPTIONS=-Djava.security.auth.policy=%J2EE_HOME%\lib\security\jaas.policy
という文が駄目なようです。"="が2回出てくるのがWin98的に不味そうです。

元々J2EEはWindows98での動作保証なんて無いのは知ってましたが、
やっぱり無理なのかにゃ?

Windows98の環境変数の値に"="を含める方法ってありますか?
0843デフォルトの名無しさんNGNG
-Djavaなんたら ってのはJVM起動オプションなので、
環境変数から取らないで、自前で起動バッチ作る方が
速いかもねー。
0844デフォルトの名無しさんNGNG
ちゅうか、普通、そんな J2EE 付属のじゃなくて、

http://www.jboss.org

みたいなコンテナ専用サーバ使うんじゃないのけ?
0845デフォルトの名無しさんNGNG
2000いりゃれりゃあああ
0846842NGNG
>>843 それでもいいかにゃ?
>>844 なんか素晴らしそう。フリーかにゃ?
>>845 無職で引き篭りの俺にそんな金はねえぇぇぇぇんです!!!バカ!!
0847845NGNG
バカとはなんだバカとは
0848デフォルトの名無しさんNGNG
>>846

しかし、俺が試してみたところ、俺は Windows98 ユーザだが、
うまく動かなかったがな。
0849デフォルトの名無しさんNGNG
2000ホチイヨー。XPは要らん。
0850デフォルトの名無しさんNGNG
Micromedia JRun Server 3.1J Developer版 (日本語)
Linux, Solaris, Win95, Win98, WinNT, Win2000 ― 無期限, 同時接続制限 3
http://jrun.itfrontier.co.jp/product/JRun_Server_30.cfm

IBM WebSphere Application Server Advanced Single Server Edition 4.0, Developer (日本語)
Linux, WinNT, Win2000 ― 六ヶ月有効版
http://www14.software.ibm.com/webapp/download/search.jsp?go=y&rs=wsassed

BEA WebLogic Server 6.1 (英語? 使ったことない)
WinNT, Win2000, Solaris, HP-UX, AIX, Linux
http://commerce.bea.com/downloads/weblogic_server.jsp

Windows 95 なら JRun がお勧めかな。以前一台の 95 (98だったかも) に JRun 積んで
3人くらいで開発していたから。
0851デフォルトの名無しさんNGNG
>>828
おぉ、バリバリやるぞぉ〜!
レス有難ぉ。
0852デフォルトの名無しさんNGNG
WebObjects5.1から、Servlet,JSP,EJBも使えるようになったよ。
http://www.apple.co.jp/webobjects/index.html

それでも、WOFとEOFには遙かに及ばないけど。
前に仕事で、Servlet,JSP,EJBでやったら3ヶ月かかったアプリを、
個人的に趣味でWOで1から組み直したら1ヶ月かからんかった。

ちなみに、¥72,800の1パッケージに、開発環境&運用環境が入ってる。
開発はWindows2000&MacOSXのみ。
運用は、Java2環境なら全部OK。
対応DBは、JDBC2.0準拠ならなんでも可。
運用環境は、同時接続数無制限、1CPU単位でなく、1サーバ単位で¥7万。
以前は、¥700万以上だったのにな。今や1/100だ。
0853デフォルトの名無しさんNGNG
まえにSwingがいいかAwtがいいかで質問させていただいたものです。
その節はお世話になりました。
多くの方の推薦もあってSwingをはじめました。そこで、次のようなコードを
書いたら動きました。(MouseAdapterのまねです。)

JButton btn = new JButton("BTN");
btn.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent evt){
    ...
   }
  });

しかし、ActionListenerはインターフェースですよね。こんなことをしても
よいのか疑問になってきました。動くには動くのですが、たまたまなのか、
合法なコードなのか心配なのです。
どなたか教えていただけないでしょうか。
よろしくお願いします。
0854853NGNG
すみません。質問の趣旨は、
「インターフェースであっても、メソッドを上書きするように、
名無しのオブジェクトを作る」(要するに上のようにする)のが、
正しいやり方かどうかです。
よろしくお願いします。
0855デフォルトの名無しさんNGNG
問題ないよ
http://www.gimlay.org/~javafaq/S016.html#S016-02
0856デフォルトの名無しさんNGNG
あなたはそこでActionListerを実装(implements)したクラスをそこで定義しているのです.
深く知りたかったら「無名クラス」について調べてみましょう。
なかなか面白い仕組みです.
0857853NGNG
>>855
>>856
さっそくのレスありがとうございました。
(話の流れから言って、私へのレスですよね。)
なんだか、少しわかったような気がします。
0858デフォルトの名無しさんNGNG
>>832

import java.awt.*;
import java.awt.image.*;

public class FillShape {

public static void main( String[] args){
new FillShape();
}

public FillShape() {
Polygon poly = new Polygon();
poly.addPoint( 8, 0);
poly.addPoint( 16, 8);
poly.addPoint( 8, 16);
poly.addPoint( 0, 8);

ImageViewer comp = new ImageViewer( createImage( poly) );
Frame frame = new Frame();
frame.add( comp);

frame.setSize( 100, 100);
frame.setVisible( true);
}

static Image createImage( Shape shape){
Rectangle rect = shape.getBounds();
BufferedImage image =
new BufferedImage( rect.width, rect.height, BufferedImage.TYPE_INT_RGB);
System.out.println( image);
Graphics2D g = (Graphics2D)image.getGraphics();
g.setColor( Color.blue);
g.fill( shape);
g.setColor( Color.red);
g.draw( shape);

return image;
}

}

class ImageViewer extends Component {
Image image;

public ImageViewer( Image image){
this.image = image;
}

public void paint( Graphics graphics){
graphics.drawImage( image, 0, 0, this);
}
}

// うまく fill されない様子が分かります。
// 改善方法を教えてください。
0859デフォルトの名無しさんNGNG
あ、JHBに投げたね(藁
JDK1.4.0-rcで見ると特に問題ないように見える。(小さすぎてよく解からんけど)
0860デフォルトの名無しさんNGNG
俺も上手く塗れてると思うけど。

赤いラインが切れてるけど、
これはImageのサイズが16*16(0〜15、0〜15)しか無いのに、
16, 8や
8, 16
に塗ってるのが問題かと。

↑Java2Dには全く興味ないしやった事も余り無いので俺の直感なんだけどね。
0861デフォルトの名無しさんNGNG
あ、こういうことかな?

つまり16 * 16のImageの場合、
座標はxが0-16, yも0-16なんだけど
drawLine(0, 0, 0, 16)をした場合
x座標の0と1の間が塗られる。
だから座標の16を指定した場合は、16-17の間が塗られるんだけど
Imageは16*16なので塗ることが出来ない。
0862デフォルトの名無しさんNGNG
たしか、Graphics.draw(Shape shape)の動作って、

Shapeに対して一回り大きいShapeが作られて
そこから元のShapeを取り除いた領域に対してfillが行われる

っていう感じだったと思った。
ので実行結果的にはそれで正常。
0863デフォルトの名無しさんNGNG
>>862
drawにはStrokeが関わるはず・・・
0864デフォルトの名無しさんNGNG
BaiscStroke.createStrokedShape(Shape)
の動作がそうなってる、ということで。
0865デフォルトの名無しさんNGNG
うーん、正確には

> Shapeに対して一回り大きいShapeが作られて
> そこから元のShapeを取り除いた領域に対してfillが行われる

っていうのもちょっと違うんだけどね。
まあ要するにg.draw(shape)するには
shape.getBounds()では狭すぎる、っていうことです。
0866超初心者NGNG
JAVAの超初歩的なことわからなくて聞きたいんですが、JAVAでいうオブジェクトってクラスのことなの?いろんなクラスを組み合わせて一つのソフト作るってこと?なんかクラスとメッソドってよくわかんないのです。誰か助けて!

0867デフォルトの名無しさんNGNG
クラス:オブジェクトの設計図(みたいなもの)
    オブジェクトのもっている状態や振る舞い(メソッド)を記述

オブジェクト:クラス(設計図)によって実際に作成されたもの

って説明でいいかしら?
0868デフォルトの名無しさんNGNG
>>867
>オブジェクト:クラス(設計図)によって実際に作成されたもの
狭義ではそうだが、普通はそれをインスタンスと呼ぶ

広義ではクラスもインスタンスも含めてオブジェクト
0869デフォルトの名無しさんNGNG
>>865 普通は867の理解で困らない。

「クラスもオブジェクトの一種」という考え方は
リフレクションが必要になるまで後回しにしといたほうが
混乱しないで済むと思う。

言語や環境によっては
「クラス ⊂ オブジェクト」が
サポートされてなかったりするし。(C++とか。)
0870デフォルト名無しNGNG
質問です。
Aクラスを継承したBクラスがあります。BクラスではAクラスのdrawメソッド
(図形を描く類)をそのまま使っています。今、AとBの描く図形の色を変え
たいと思い、getFillColor(Graphics g)メソッドを作りBクラスで
オーバーライドしています。そしてAのdrawメソッドの中でgetFillColorを
呼び出して色を決定しようと考えているのですが、違う色になりません。

Bクラスのインスタンスで、オーバーライドしていないためAのdrawメソッドから
呼び出しているgetFillColorメソッドは、BのgetFillColorメソッドを
呼び出さないのですか?
0871870NGNG
Aのdrawメソッド→drawメソッド

すみません。こう読みなおしてください。
0872デフォルトの名無しさんNGNG
>>870
>Bクラスのインスタンスで、オーバーライドしていないためAのdrawメソッドから
>呼び出しているgetFillColorメソッドは、BのgetFillColorメソッドを
>呼び出さないのですか?
そんなことはありません。getFillColorをちゃんとオーバーライドしていれば、
呼び出されます。
0873870NGNG
ソースを出します。やはり呼び出されていません。

package graphicstest;

import java.awt.*;
public class MiniteHand {

protected point2D core;
protected point2D edge;
private point2D uRight;
private point2D uLeft;
private point2D bRight;
private point2D bLeft;
private double length = 100.0;
private gApplet app;
private Color color;

/**デフォルトコンストラクタの空定義*/
public MiniteHand() {}
/**コンストラクタの定義*/
public MiniteHand(int angle) {
/*******ここは関係ないので省略*********/
}
public void draw(Graphics g){

/*******この以前は関係ないので省略*********/
getFillColor(g);
g.fillPolygon(Xs,Ys,Xs.length);
g.setColor(this.app.currentColor);
g.drawPolygon(Xs,Ys,Xs.length);
}
private void getFillColor(Graphics g){
g.setColor(Color.red);
g.drawString("In the MiniteHand",0,30);
}
}

public class HourHand extends MiniteHand {

public static double length = 75.0;

public HourHand(int angle) {
/*******ここは関係ないので省略*********/
}
private void getFillColor(Graphics g){
g.setColor(Color.blue);   //青にならない
g.drawString("In the HourHand",0,40);  //表示されない
}
0874デフォルトの名無しさんNGNG
privateは継承されない
0875870NGNG
失礼コキマシタ(プ
0876へぼへぼNGNG
 はじめまして。へぼへぼな質問をさせてください。
 それは、標準出力で、Serializableなクラスのインスタンスそのものを
出力できないか、ということです。
 やりたいことは、クライアントからProcessをつかってrshをよび、サーバー側
のクラスを実行します。その結果の入ったクラスを、Process.getInputStream
を使い、ObjectInputStream経由で取得する、という物です。
 ふつうに文字列を標準出力した場合は、ちゃんと取得できるので、
全く不可能とは思えないのですが・・・。

 よろしくお願いします。
0877デフォルトの名無しさんNGNG
>>876
出来るんじゃないの?
0878へぼへぼNGNG
>>876
あぅ。やっぱりできるんですね。
今日一日、それで詰まってるんです。
ぜひ、ご教授願います。
0879デフォルトの名無しさんNGNG
【送信側】
AbcBean bean = new AbcBean();
ObjectOutputStream out = new ObjectOutputStream(System.out);
out.writeObject(bean);
out.flush();

----------------------------
【受信側】
ObjectInputStream in = new ObjectInputStream(process.getInputStream());
AbcBean bean = (AbcBean)in.readObject();

これで出来ないなら Base64 かなにかで ASCII にして出力すれば?
ちゅうか、上の説明だけじゃどこで躓いてるのかサパーリわからんよ。
0880へぼへぼNGNG
すいません。もう少し詳しく書きます。
自分なりに調べて、上記の様にはしたのですが、readObject()で、
「UTFDataFormatException」が発生してしまいます。
また、処理を簡略化した物では、「EOFException while reading the
stream header」となってしまいます。
 出力するクラスの規模は全く違うのですが、それ以外は
ほとんど変わりません。

頭がいっぱいいっぱいです・・・。
0881デフォルトの名無しさんNGNG
>>880
なら多分標準出力にバイナリ食わせているのが問題なのだろう。

--------------------------------------
【送信側】
AbcBean bean = new AbcBean();

// シリアライズされたバイナリを取得
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(bean);
out.flush();

// ASCII 文字の 16 進数で出力
byte[] binary = baos.toByteArray();
for(int i=0; i<binary.length; i++){
  System.out.print(Character.forDigit((binary[i] >> 4) & 0x0F, 16));
  System.out.print(Character.forDigit((binary[i] >> 0) & 0x0F, 16));
}
System.out.flush();

--------------------------------------
【受信側】
// ASCII 文字の 16 進数をバイナリに変換
InputStream in = process.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while(true){
  int ch1 = in.read();
  int ch2 = in.read();
  if(ch1 < 0 || ch2 < 0)  break;
  int bin = (Character.digit(ch1, 16) << 4) | Character.digit(ch1, 16);
  baos.write(bin);
}

// バイナリからオブジェクト復元
byte[] binary = baos.toByteArray();
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(binary));
AbcBean bean = (AbcBean)in.readObject();

--------------------------------------
もっとちゃんとやりたかったらデータ長と MD5 でも付けれ。
というか一回 RMI を勉強すると幸せになれるかもしれないと思ってみたり。
0882デフォルトの名無しさんNGNG
ゔ、ObjectOutputStream を flush() した後に close() しないとなにか出るかも…。
0883デフォルトの名無しさんNGNG
JInternalFrameを(マウスかなんかで)選択した時のイベントうけとりたいんですけど

frame.addInternalFrameListener(new InternalFrameAdapter() {
public void internalFrameActived(InternalFrameEvent evt) {
System.out.println("選択された");
}
} );

これでいいんじゃないの?なんか出来ないんだけど、なんかおかしい?
0884デフォルトの名無しさんNGNG
こんにちは私はinposeek名誉会長桂様といいます
このたびIE拡張ツールinfoseekBarを改造してすごいソフトを作制しています
しかし残念なことに私の力だけでは改造しきれぬほどに高機能化してしまいました
そこでこのインポコシークバーの改造協力者を募集しています
私よりも高度な改造ができるという方はぜひとも
http://pc.2ch.net/test/read.cgi/win/1012018757/
までおいでください
来ない人は自動的に私以下のプログラマのレッテルを貼りますのでよろしく
桂様でした(拍手)
0885デフォルトの名無しさんNGNG
>>833
internalFrameActivatedだよ
多分スペルミスでしょ
0886デフォルトの名無しさんNGNG
ゔゕゖ゗゘゙
゚゛゜ゝゞゟ゠
0887Java初心者NGNG
Javaで「Hello World」(笑)
http://logos.jp/development/javahello/
0888デフォルトの名無しさんNGNG
JTableでカーソル移動したらイベント受け取ってカーソル位置を検出したいのですが・・

myTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
 public void valueChanged(ListSelectionEvent evt) {
  if (evt.getValueIsAdjusting()) {
   System.out.println("X: " + evt.getLastIndex());
  }
 }
} );
myTable.getColumnModel().addColumnModelListener(new TableColumnModelListener() {
 public void columnSelectionChanged(ListSelectionEvent evt) {
  if (evt.getValueIsAdjusting()) {
   System.out.println("Y: " + evt.getLastIndex());
  }
 }
} );

これでいいんとちがうの?何か違う?
マウスでセルを選択したら検出してくれたものの、カーソルでの操作は一切だめでした
APIが膨大でどーすればよいのかわかりませぬ、誰か助けて・・
0889デフォルトの名無しさんNGNG
final table = myTable;
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
 public void valueChanged(ListSelectionEvent evt) {
  if (!evt.getValueIsAdjusting()) {
   System.out.println("X: " + table.getSelectedColumn());
   System.out.println("Y: " + table.getSelectedRow());
  }
 }
} );

コレでいいんちゃう?あと、getValueIsAdjustingなイベントは
捨て対象だよ。ディスパッチしちゃだめ。
0890デフォルトの名無しさんNGNG
j2sdk1.4.0-rcを使ってるんですが、
次のように定義したクラスの中で定義した、
public class Hoge extends JFrame implements KeyListener {
  :
}

KeyPressed関数でTABキーを検出するにはどうしたらいいのでしょうか?
public void keyPressed( KeyEvent ke ) {
  int code = ke.getKeyCode();
  :
}

TABは予約されてるとか・・・SUNの文書には書いてあったんですが、
なんとか使う方法は無いですかね?
public boolean isManagingFocus() {
return true; // hack
}
ってのも試したんですけど、ダメでした。

それから、TABを検出する方法があったとして、
その際に生じる可能性のある不具合はどんなものがありますか?
0891デフォルトの名無しさんNGNG
あるストリングからスペースとタブを取り除くのは
どのような方法を使うんでしょうか?
0892デフォルトの名無しさんNGNG
Exceptionてなんですか?
0893デフォルトの名無しさんNGNG
gooの英和辞書はべんりだなぁ
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=Exception&search=%B8%A1%A1%A1%BA%F7&sw=0
0894デフォルトの名無しさんNGNG
そんぐらい辞書使わなくても…
ってツッコミは却下ですか?
0895デフォルトの名無しさんNGNG
>>894
exceptionてなに?具体的にどういうふうに作用するの?
参考書読んでもなにがなんだかさっぱりわからないです
0896デフォルトの名無しさんNGNG
>>895
自分でコード書いて動かしてみたか?
0897Calendar.getDefaltNGNG
また厨な質問でスミマセン。

ジャワハウスさんのほうで、年月日時刻を取得するのに、

Calendar calendar = Calendar.getDefault(TimeZone.getTimeZone("JST"));
Date currentTime = new Date();
calendar.setTime(currentTime);

としてありました。Calendarの引数無しコンストラクタでは、JSTではなくGMTを返し、
日本時間より8時間ずれてしまうようです。

しかしながら、「Java 2 SDK 1.3 日本語ドキュメント 」には、
CalendarクラスにgetDefaultメソッドなんか載っていません。

これはいったいどういうことなのでしょうか?
下のクラスで追加されたメソッドなのでしょうか?
0898デフォルトの名無しさんNGNG
>>897
現在時刻の Calendar インスタンスがほしいなら

Calendar cal = Calendar.getInstance();

だけで良い。ちゃんと JSP になってないならマシンのタイムゾーン設定が
おかしいんだろう。
0899烏龍茶NGNG
>>898
JSP ⇒ JST
0900デフォルトの名無しさんNGNG
900ズザー
0901デフォルトの名無しさんNGNG
>>895
具体的には君の事だよ、
君のように動作するから
catchしてあげてるじゃん?みんな
0902デフォルトの名無しさんNGNG
JBuilderより軽くて
コンポーネントの配置が楽チンにできるのあります?
0903デフォルトの名無しさんNGNG
public class a {
 public class inner {
  static public final int A = 55;
 }
 public static a getInstance(){
  return new a();
 }
 public static void main(String[] args){
  System.out.println("A = " + a.getInstance().inner.A);
 }
}
このコードなんですがコンパイルできません。(jdk1.3)
publicインナークラスにアクセスするときはインスタンス経由では
アクセスしては行けないってことでしょうか?
0904デフォルトの名無しさんNGNG
うふふ
0905デフォルトの名無しさんNGNG
>>903
>コンパイラで例外が発生しました。(1.3.0_02)
>プログラムと次の診断情報を添付の上、バグ報告を
>[email protected] 宛てにお送りください。
>よろしくお願いいたします。
こんなの始めてミターヨ

変なことはするな、ってことだ。
0906デフォルトの名無しさんNGNG
ちゃんと内部クラスのインスタンス作ってやんなきゃ

public class InnerTest {

class Inner {
int a = 5;
}

Inner getInner() {
return new Inner();
}

public static void main(String[] arguments) {
InnerTest test = new InnerTest();
//InnerTest.Inner inner = test.new Inner();
InnerTest.Inner inner = test.getInner();
System.out.println(inner.a);
}
}
0907903NGNG
>>906
でもね、途中に変数かますとちゃんとコンパイルできるし、実行結果も正しいのよ。
なんか納得いかん。

public class a {
 public class inner {
  static public final int A = 55;
 }
 public static a getInstance(){
  return new a();
 }
 public static void main(String[] args){
  a instance = a.getInstance();
  System.out.println("A = " + instance.inner.A);
 }
}
0908デフォルトの名無しさんNGNG
System.out.println("A = " + a.innner.A);
と同じ意味だよそれわ。
0909JCP勉強中NGNG
staticでないネストクラスがインスタンスされる場合、
外側のクラスのインスタンスが必要です。
きっと正常動作ですよ( ^_^ )
0910905NGNG
>>909
外側のクラスのインスタンス作ってるし。勉強しなおしだな。
0911903NGNG
>>908
それはわかってます。実を言うとこのコードは僕が書いたものではなくて他の部署(海外)から
回ってきたものなのです。どうしてもコンパイルがとおらないので調べていたらこういう事だと分かりました。

とリあえずコンパイル通すのにgetInstance()をはずしていますが、これはjavacのバグなのでしょうか?

>>909
その問題とは微妙に違うと思うのですが。インナーからアウターをアクセスするのではなくて
外からインナーをアクセスするときの話です
0912デフォルトの名無しさんNGNG
つーか、クラス変数にアクセスするのに
インスタンス指定する書き方はやめれ。頼むから。

class Hoge {
static int foo;
}

Hoge hoge1 = new Hoge();

に対して
× System.out.println(hoge1.foo);
○ System.out.println(Hoge.foo);
0913デフォルトの名無しさんNGNG
まあ
そうすりゃ問題ないんだけどな
0914903NGNG
>>912
ちなみにクラス変数だけでなくクラスメソッドに対しても同じ現象が起こります。
0915デフォルトの名無しさんNGNG
Java七不思議の一つ
0916デフォルトの名無しさんNGNG
>>912

class Hoge {
  static int foo;
}

Hoge hoge1 = new Hoge();
Hoge hoge2 = new Hoge();

に対して、
System.out.println(hoge1.foo);
System.out.println(hoge2.foo);
ってなことをしたいときは、どうしたらいいんですか?
0917デフォルトの名無しさんNGNG
設計を見直す
0918デフォルトの名無しさんNGNG
>916
System.out.println(Hoge.foo);
System.out.println(Hoge.foo);

としてくれ。
0919デフォルトの名無しさんNGNG
public class Hoge {
  public int foo;
}

public class Giko {

 Giko() {
  Hoge hoge1 = new Hoge();
  Hoge hoge2 = new Hoge();

  System.out.println( hoge1.foo );
  System.out.println( hoge2.foo );
 }

 public static void main(String args[]) {
  new Giko();
 }
}
ってな感じのも、設計見直しですか?(;_;)
0920デフォルトの名無しさんNGNG
>>918
最初はインスタンスフィールドだったのをあとでクラスフィールドに
書き換えた場合、参照してるところを全部書き換えるの?
レス数が900を超えています。1000を超えると表示できなくなるよ。