JavaAppletのプログラムを走らせたところ,
MacやデスクトップのWindowsマシンでは正常に動作したのに,
Windowsノートでのみタイトルのエラーが出ました.

a[i] = b[i] + c[i];とかくとエラーになって,
a[i] = b[i]; a[i] += c[i];と分けて書くとエラーが出なくなったので,
解決(?)はしたのですが,
これは何が原因なのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (10件)

確認です。



int a[] = new int[10];
は以前の補足にありましたが、
b、cも同じ int[] ですか?

#でも、他のマシンなら動いてるんだもんな。プログラムが原因じゃないな。。。
#そうなると、疑うべきはVMなんだよな。。。

この回答への補足

簡単な問題かなと思いましたので表記は簡略化していたのですが,
いちおう正確な記述を挙げておきます.
もし,よろしければご覧頂ければ幸いです.

final int MAXCAT = 10;
final int MAXKEY = 143;
int rx[] = new int[MAXKEY];
int ry[] = new int[MAXKEY];
int boxx[] = new int[MAXCAT];
int boxy[] = new int[MAXCAT];
int boxsizex[] = new int[MAXCAT];
int boxsizey[] = new int[MAXCAT];
が宣言で,
rx[NT-k] = boxx[BOXlist[CLnumber[i+1]][CLsubnumber[i+1]]];
rx[NT-k] += boxsizex[BOXlist[CLnumber[i+1]][CLsubnumber[i+1]]]/2;
が,問題の行になります.
このように2つに分けるとエラーはでません.

また,プログラム中の次の行にあります
ry[NT-k] = boxy[BOXlist[CLnumber[i+1]][CLsubnumber[i+1]]]
+ (j+1)*(FONTSIZE+6) + (FONTSIZE+6)/2;
もエラーは出ていません.

補足日時:2001/03/23 10:44
    • good
    • 0

>実際Boxlistは


>int BOXlist[][] = new int[MAXCAT+1][MAXCAT];
>と定義してあります.
であれば問題ないですね。

「Javaには2次元配列がない」とは、「C言語で言う、ポインタ配列のポインタ配列を2次元配列のように見せているが、内部的には2次元ではない」の意味です。

#本題解決に何の役にも立たない情報で申し訳ない
    • good
    • 0
この回答へのお礼

どうも、長い事お付き合い頂きありがとうございました。
あまり引っ張っても仕方の無いことですので、
この辺で締めきりとさせて頂きます。

結論は、JavaVMが悪かったと言う事ですっきりしました。
どうも、ありがとうございました。

お礼日時:2001/03/27 18:46

ご提示のソースをちょっと書き換えると以下のようになると思います。

(1)だとエラーになって、(2)だとエラーにならない、という現象だということになります。通常のデバッグであれば、boxlistのあたりを疑うと思います(Javaには2次元配列がないので、boxlist[・]が配列を参照するように初期化する必要がある)が、今回の場合にはお手上げです。(以下のように、式をバラしてみると糸口が見つかるかもしれません)

// (1)
int clNum = clNumumber[i+1];
int clSub = clSububnumber[i+1];
int box = boxlist[clNum][clSub];
rx[NT-k] = boxx[ box ] + boxsizex[ box ] / 2;

// (2)
int clNum = clNumumber[i+1];
int clSub = clSububnumber[i+1];
int box = boxlist[clNum][clSub];
rx[NT-k] = boxx[ box ];
rx[NT-k] += boxsizex[ box ] / 2;

この回答への補足

「Javaには2次元配列がない」の意味がわからないので教えていただけないでしょうか?
手元の本にはJavaは多次元配列もサポートしていますと書いてあるのですが..
実際Boxlistは
int BOXlist[][] = new int[MAXCAT+1][MAXCAT];
と定義してあります.
#もしかして,Perlと勘違いをなさっているのでしょうか?

補足日時:2001/03/26 22:28
    • good
    • 0

デバッグモードではなく、リテールモードでコンパイルされたんですかね?


例外表示に行番号が表示されていないので何とも言えないんですが・・・
行番号入っていればしらみつぶしにできるんですけどね。
ちょっとわかんないです。ごめんなさい。

この回答への補足

しらみつぶしにして,見つけたのが質問の行なのです.
その行をコメントアウトしてもエラーは出なくなります.
(動作はもちろん,所期のものとは異なりますが)

補足日時:2001/03/21 10:34
    • good
    • 0

テストは自作デスクトップ&Microsoft VMでやりました。


環境がVisual J++だったので。JDKもあるんですけどね。

エラーがブラウザ上でしか見ていないと言うことですが、
#ブラウザ上の何なのかが書かれていないのですが
#多分ステータス領域のこととして話を進めます

下記リンク内のスペシャルトピック(必読)の
「「Java Console」を調べずに「動きません」と報告してはならない 」
のリンクをご参照ください

また、トピックのAppletの項ももしかしたら参考になるかもしれません。

参考URL:http://java-house.etl.go.jp/ml/

この回答への補足

すみません.エラーの詳細は以下のようでした.
関数initの中の関数readdataの中の関数calculate_placeでエラーが起きているということ以外にわかる事実がありますでしょうか?

java.lang.ArrayIndexOutOfBoundsException
at sunasearch9.calculate_place
at sunasearch9.readdata
at sunasearch9.init
at com/ms/applet/AppletPanel.securedCall0
at com/ms/applet/AppletPanel.securedCall
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run

補足日時:2001/03/19 14:29
    • good
    • 0

ノートのJavaVMが古いとか。

。。

エラーは ArrayIndexOutOfBoundsException と(長い)1語だけですか?
一緒に表示されれたメッセージをそのまま載せてくれたほうが解決する可能性が高いと思いますよ。

この回答への補足

ノートは3種類くらいで試したのですが、一つはmebiusのMJ140Rで比較的
新しいと思うのですが、ノートの新しさには比例してないのかな。
JavaVMのせいと言われればそれまでですが、
エラーとの相関関係はどうなんでしょうか?
(これがいわゆるJavaのバグってやつなのかな。。。)

Appletのプログラムなのでエラーはブラウザ上でしか見ていなくて、
それでも長くてBoundsくらいまでしか見れなかったのですが、
続きに詳細が表示されてるのでしょうか?

補足日時:2001/03/18 17:47
    • good
    • 0

ああそうか・・・。



ちなみにそれだけするプログラム書いて実行したら大丈夫だったんですけどね、、、

なんだろう・・・

この回答への補足

そのプログラムはWindowsノートで動かされたのですか?

補足日時:2001/03/18 17:48
    • good
    • 0

ああ、普通のintとかcharとかの配列も、クラスオブジェクトのポインタの配列も


両方とれるという話です。

でも、javaはポインタの足し算はできないので・・・

うーん例外の詳細を見ないとなんとも・・・

やっぱり配列の範囲越えだと思うんですけれども・・
あと、たとえ配列長確保が正常に行われていてもその要素全部に
値を代入してありますか?

この回答への補足

質問の繰り返しになりますが、
a[i] = b[i] + c[i];ではエラーになりますが,

a[i] = b[i]; a[i] += c[i];では「エラーにならない」のです。

範囲越えや要素への値の代入が問題の場合、
両方ともエラーになると思うのですが。

補足日時:2001/03/17 12:50
    • good
    • 0

Javaは配列にプリミティブデータもオブジェクトの参照もとれますし


データがどんなものはいっていたかわかんないので
質問だけじゃちょっと推測ができません。

宣言と代入部分をある程度引用していただければありがたいのですけど。

この回答への補足

すみません。「プリミティブデータ」と「オブジェクトの参照」の意味がわからないので、教えていただければ幸いです。
配列はint型で、
int a[] = new int[10];
と宣言しました。
添え字が宣言の範囲(0-9)を越えることはなく、他の部分では正常に動作しました。

個人的には、 b[i]+c[i]の記述がそれぞれの値の足し算ではなく、
値へのポインタの足し算になっているような気がします。(エラーの内容から)
ただ、それがマシン依存なのかJavaのバージョンのせいなのか、
このエラー原因の推測が正しいのかは全くの不明です。

補足日時:2001/03/17 11:17
    • good
    • 0

私には、それだけじゃちょっとわからないです。


iがどんな値なのか判らないので。

ちなみに、ArrayIndexOutOfBoundsExceptionは
int a[]=new int[12];
と定義したときに、
a[12]=12;
a[-1]=-1;
とか、定義した範囲外のインデックスを使おうとすると起こります。
(ご存じでしたら、失礼しました。)

この回答への補足

iは0でした。
ちなみに、c[i]の代わりにc[0]としてもエラーになりました。

補足日時:2001/03/17 01:41
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q英語嫌いの原因

お世話になります。

英語が嫌いの方におたずねします。
英語ぎらいの原因は何だと思いますか?
昔の経験でも結構です。

英語が分からない。
受験英語がつまらない。
必要を感じない。
嫌な経験をした。
言葉自体に興味がない。
授業についていけない。
先生と相性が悪い。
勉強全体がきらいだ。
発音が上手くできない。

などの他に何か特殊な事でもけっこうですので話を聞かせていただけますか。よろしく。

Aベストアンサー

こんばんは

中学時代

中1
英語というもの自体わからなかった。また、何しに英語学と言う物が必要かもわからなかった。先生はいいとも、悪いとも思わなかった。

中2
先生のやり方が気にくわなかった。授業が始まる前に本文を黒板に書いていくことが。さらに、物語とかの内容が全く興味なかった。
ただ、この先生は一生懸命教えてるという事だけはわかった。

中3
先生は笑える人だった。ボー読みの日本語発音。
受験の為の内容だからかな。

高校1~3
1からだからやる気をだしたが、すぐにつまずき、挫折と苦痛、また外人と話さないし、英語が必要な仕事にもつくわけでもなく、大学行くわけもなしと、やる必要なしと思う。

専門1年
何で専門学校にまで英語がついてるのか疑問まみれ。
医療系だったから、医学に関しての英語ならまだしも、
普通の英語の授業。はぁ~とてつもなく苦痛だった
もちろんテストは・・・・・。

専門2年
この教え方には参った!!。本文を訳すとき、自分の訳と同じでないと、間違いというハゲでぶ中年。学校中からの嫌われ者。こんな授業は授業でなかった。

専門3年
ネイティブが先生だった。答えないなら答えなくて済んだし発言もしなくてよかったし、目だ立ちたがりやの男子が答えてたので、気楽でよかった。専門3年の授業が終わる頃、英語と絶好できて幸せを感じた。

そして、年月が過ぎ・・・・・

外人と知り合い、今、英語をやってます。一昨年とか去年は、片言でも、なんとか通じることに感動を覚える!!

そして今、成長しない自分。倦怠期ぎみ。イライラ。

ということで嫌いだった原因は自分の英語への関心度(これが1番の原因)、先生の教え方、教科書の内容に問題があったかと。

さとて、これから先はどうなるか最近わからなくなってます。

こんばんは

中学時代

中1
英語というもの自体わからなかった。また、何しに英語学と言う物が必要かもわからなかった。先生はいいとも、悪いとも思わなかった。

中2
先生のやり方が気にくわなかった。授業が始まる前に本文を黒板に書いていくことが。さらに、物語とかの内容が全く興味なかった。
ただ、この先生は一生懸命教えてるという事だけはわかった。

中3
先生は笑える人だった。ボー読みの日本語発音。
受験の為の内容だからかな。

高校1~3
1からだからやる気をだしたが、すぐ...続きを読む

Qjavascript:(function(q, a, z) { q[a]("f")[z] = Ma

javascript:(function(q, a, z) { q[a]("f")[z] = Math.floor(Math.random()*999999);document.forms[0].submit(); })(document, "getElementById" ,"value");

このブックマークレットをsetIntervalで動かしたいのですがどう書き換えればいいのかよくわかりません。

調べたらstartfncやsetInterval(ここに何かを指定?,ミリ秒);を付ければ可能なことがわかったのですがうまくいきません。
初心者です。何卒宜しくお願いします

Aベストアンサー

こんにちは

>setIntervalで動かしたいのですが~~
setIntervalは以下のような構文になります。
 intervalID = window.setInterval(func, delay);
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval

ご提示のスクリプトは即時関数の形式をとっていますので、さらに関数化(匿名関数でも可)して上記構文のfuncに当てはめれば良いことになります。
http://qiita.com/katsukii/items/cfe9fd968ba0db603b1e
スクリプトは概ね以下の2行と等価ですので、こちらを関数化しても同じですね。
(フォームに乱数を設定しサブミットする)
 document.getElementById("f")..value = Math.floor(Math.random()*999999);
 document.forms[0].submit();


ところで、ご提示のスクリプトではフォームをサブミットするようになっていますが、通常はサブミットするとページが遷移してしまうので、setIntervalで繰り返すことは難しいはずです。
まぁ、target属性が設定されていたりすれば別ですけれど・・・
使い方がいまいちよくわかりませんが、文法的には
 setInterval( function(){
  ~~~
}, dalay);
とするか、
 setInterval(hoge, dalay);
 function hoge(){
  ~~~
 }
のようにすることで、実行が可能なはずです。(繰り返しできる環境であれば・・・)

こんにちは

>setIntervalで動かしたいのですが~~
setIntervalは以下のような構文になります。
 intervalID = window.setInterval(func, delay);
https://developer.mozilla.org/ja/docs/Web/API/Window/setInterval

ご提示のスクリプトは即時関数の形式をとっていますので、さらに関数化(匿名関数でも可)して上記構文のfuncに当てはめれば良いことになります。
http://qiita.com/katsukii/items/cfe9fd968ba0db603b1e
スクリプトは概ね以下の2行と等価ですので、こちらを関数化しても同じですね。
(フォ...続きを読む

Q英語が原因で・・?少し長いです。

質問をする場所に迷いましたが、英語が関係しているのでこちらでさせていただきます。
どうかご存知の方は回答をよろしくお願いします!

知り合いのお子さんが3歳から英語を始め、現在5歳で来年の春から小学生なんです。
お母さん曰く、最近人に指摘されて気づいたそうなんですが、お子さんの「さしすせそ」の発音が「しゃしぃしゅしぇしょ」になっているそうなんです。それと「たちつてと」が「たちちゅてと」だそうです。それが小さい頃から英語を始めたのも原因かも!?しれないね、と指摘された人に言われたらしいんです。
週1に1時間だけ英語に触れているだけで、そんなことってあるんでしょうか?
それにお母さんが指摘されて気づく位なら、そんなにひどくないとは思うんです。
私が実際にそのお子さんの言葉を聞いたわけではないのでなんとも言えないのですが・・
他のカテゴリーで調べてみると、舌が短いなどの原因は見つかりましたし、英語の講師をしている友人に聞くと、週1に1時間のペースで英語が原因なのはまずありえないし、それなら幼児で始めた子はみんななっている、と言っていました。

英語と幼児の発音の関係が気になり、質問をさせていただきました。
お母さんはこの発音で小学校になっていじめられたら・・と心配しています。
どうかそのお母さんを安心させてあげられるような情報をご存知の方はお返事をお願いします!!

質問をする場所に迷いましたが、英語が関係しているのでこちらでさせていただきます。
どうかご存知の方は回答をよろしくお願いします!

知り合いのお子さんが3歳から英語を始め、現在5歳で来年の春から小学生なんです。
お母さん曰く、最近人に指摘されて気づいたそうなんですが、お子さんの「さしすせそ」の発音が「しゃしぃしゅしぇしょ」になっているそうなんです。それと「たちつてと」が「たちちゅてと」だそうです。それが小さい頃から英語を始めたのも原因かも!?しれないね、と指摘された人に言...続きを読む

Aベストアンサー

こんにちは。

私の知り合いにも3~5歳位の子供が居る人が5人程いますが(全員一人っ子です)、その中の3人は(4歳が二人と5歳が一人)ご質問者さんのお友達さんのお子さんの様に“さしすせそ”が”しゃしぃしゅしぇしょ”、”たちつてと”が”たちちゅてと”になっていました。

ハーフの子が居る友達(日本でアメリカ人の男性と結婚し、家では英語と日本語両方を教えてます)も居ますが、彼女の息子さんは言葉そのものがごっちゃになる(“今日は何曜日?”と"What day is today?"がまざって“今日は何デー(day)?”と言ったりする)事は良くある様ですが、発音がおかしい事はありませんでした。

私はアメリカ在住14年で、こちらで出会ったアメリカ人の友達で、日本人の男性と結婚してハーフの4歳児がいる人がいます。旦那さんが日本人なので、彼女も日本語と英語、両方の教育をしてるのですが、その子の英語の発音は普通でしたよ。(勿論こちらにも独特の“赤ちゃん語”と言うのがあるので、あまり難しい発音が出来ない時もありますが、日本語/外国語を学んでいるから、と言う訳ではありません)

>週1に1時間のペースで英語が原因なのはまずありえないし、それなら幼児で始めた子はみんななっている、と言っていました。

私も同意見です。

私は18歳で渡米し、今ではアメリカで生まれたのかときかれる程の英語力に達しましたが、やはり、“小さい頃から英語に触れて来た”バイリンガルの人とはレベルが違います。ご質問者さんのお友達さんにも、この経験が原因で英語を教えるのをやめてしまわない事を祈ってます!子供の脳はスポンジですもの。発音がおかしいと言ってもまだ5歳。日本語だけしかしゃべれない子にもちゃんと発音が出来ない子はいます。

大丈夫!これにくじけずがんばって、お友達さんがお子さんを“本当のバイリンガル”にさせてあげられると良いですね。

とりあえず、“英語を早いうちから学んだから発音がおかしくなる”事は無いと思いますよ。

こんにちは。

私の知り合いにも3~5歳位の子供が居る人が5人程いますが(全員一人っ子です)、その中の3人は(4歳が二人と5歳が一人)ご質問者さんのお友達さんのお子さんの様に“さしすせそ”が”しゃしぃしゅしぇしょ”、”たちつてと”が”たちちゅてと”になっていました。

ハーフの子が居る友達(日本でアメリカ人の男性と結婚し、家では英語と日本語両方を教えてます)も居ますが、彼女の息子さんは言葉そのものがごっちゃになる(“今日は何曜日?”と"What day is today?"がまざって“今日は何デー(day)...続きを読む

Qid=a1 id=a2 id=a3 のようなid="a"+i のlengthを求めたい

id=a1 id=a2 id=a3 のようなid='a'+i のlengthを求めたい
のですが、どのようにするのでしょうか?

Aベストアンサー

たとえばこんな感じでどうでしょう?

<script>
window.onload=function(){
var tags=document.getElementsByTagName("*");
var count=0;
for(var i=0;i<tags.length;i++){
if(tags[i].id.match(/^a[0-9]+$/)) count++;
}
alert(count);
}
</script>

<div id="a1">a1</div>
<div id="a2">a2</div>
<div id="a3">a3</div>
<div id="a100">a100</div>
<div id="b1">b1</div>
<div id="b2">b2</div>
<div>none</div>

Q日本人が英語が苦手な原因の一つとシャドーイングについて

日本人が英語が苦手な原因の一つとシャドーイングについて

現在海外に留学中で、普段のコミュニケーションは英語で行っているものですが、
留学して日本人が英語が苦手な原因の一つに気づきました。
それは日本人の話す速度が他の国に比べて格段に遅いということです。
普段の会話のスピードを聞いていても海外の人の話す速度が
日本人にとってめちゃくちゃ早く感じるのは、日本人が日本語で話す速度が遅いために
感じるのではないかと思うようになりました。
そのため、英語の学習法の一つにシャドーイングという方法がありますが、あの方法は
もともと喋る速度が遅い日本人にとって、ナンセンスなんじゃないかとも思うようになりました。
みなさんはこの意見に関してどう思いますか?

Aベストアンサー

日本人が喋るスピードが遅いのは、日本語の習慣で、全ての子音の後に母音を補って発音しようとするからです。

例えばbuildingは英語では2音節ですが、日本人が発音すると「ビ・ル・ディ・ン・グ」で5音節になってしまうので、単純に考えても2.5倍の長さがかかってしまうことになります。
 
日本式の発音を止めれば、日本人でも英語を喋るスピードは速くなると思いますよ。
シャドーイングは日本式の発音をしていたらついていけないので、英語の話すスピードをあげる訓練にはもってこいだと思いますけれど・・・
 

 

QString a = "a"; と String b = new String ("b"); の違い

String a = "a";
String b = new String ("b");

お伺いしたいのですが、
b は String のインスタンスを作ってると思いますが、
a はどんなことをしてるのでしょうか?

Aベストアンサー

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その初期化に使った無名のStringインスタンスの3つがメモリ上に存在することになります。
if(b1 != b2) System.out.print("b1とは違うインスタンス");
の結果でもわかると思います。

したがって、
String b = new String ("b"); というのは、Integerに例えると
Integer i = new Integer(new Integer(1)); という処理を
していることになり、ひとつ無駄なインスタンス生成となります。

お二人の回答を具体的に言うと、こういうことです。
String a1 = "a";
String a2 = "a";
String b1 = new String ("b");
String b2 = new String ("b");

a1のために、aという文字列のインスタンスが作られますが、
a2に代入されるのは、a1に使われたインスタンスが再利用されます。
これは、
if(a1 == a2) System.out.print("a1と同じインスタンス");
の結果でもわかります。

一方、b1とb2は、bという文字列オブジェクトを引数に、新しいインスタンスを生成する指示がありますので、b1とb2と、その...続きを読む

Q英語に訳せる方、どうかお願いします!!! あなたが元気がないのは私の事が原因ではないかと、少し感

英語に訳せる方、どうかお願いします!!!


あなたが元気がないのは私の事が原因ではないかと、少し感じていました。
やっぱり、そうだったのですね。
あなたにプレッシャーを与えているつもりはないですが、あなたが感じていることに私は
罪悪感を感じます。

宜しくお願いします!!!

Aベストアンサー

I felt a bit that you don't look well because of me. Just as I thought I was. I feel guilt for what you feel but I have no intention of putting pressure on you.

Q[[prototype]] =__proto__?

[[prototype]] と __proto__ は、同じ意味でしょうか?

Aベストアンサー

__proto__は非標準で実装依存なので、その点で同じではありません。

例えば、Firefoxの場合、下記ページに
__proto__ - JavaScript | MDN
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Object/proto
> An Object's __proto__ property references the same object as its internal [[Prototype]]
とあるので、Firefoxに関しては同じと見なせると思います。

もっとも、__proto__を実装しているブラウザはたいてい[[Prototype]]を意図して実装していると思われますし
現実的には同じものだと考えてしまっても理解する上で特に問題は無いかと思います。

Q英語に翻訳お願い致します。 『カンボジアの地雷での死者の46%は子供です。 子供の被害を受ける原因は

英語に翻訳お願い致します。

『カンボジアの地雷での死者の46%は子供です。
子供の被害を受ける原因は、子供は警告の字が読めなかったり、好奇心でおもちゃと間違えて触ってしまったりするケースあるからです。その現状を受け、看板をなるべくわかりやすくするなど改良はされています。
子供の被害を減らしてほしいと願っています。』

Aベストアンサー

46% of the total number of dead caused by mine in Cambodia is children.This is because there are cases that children can't read the letters of alarm and they touch it in mistake for a toy with curiosity. On the basis of the real situation, it is being improved as notices can be understood as easy as possible.I hope the number of the child victims will decrease.

Q[クラス名].[メソッド名].[メソッド名]という書き方。

javaを勉強している者です。

少しピンと来ない書き方があるのですがそれはタイトルの通りの書き方で、具体的には

Main.getMailStore().isNewMail()

という書き方です。MailというのがクラスでgetMailStore()というのがそのクラスで宣言されているメソッドで下記のように実装されています。(MailStoreというのはインターフェースとして別のファイルで宣言されています。)

private static MailStore _mailStore;

public static MailStore getMailStore(){
return _mailStore;
}

(MailStoreというインターフェースの中にisNewMailというメソッドは宣言されています。)

public interface MailStore{
public boolean isNewMail(String uid);
}

これらだと、最初のMain.getMailStore().isNewMail()というのは、
「まず、MainクラスのgetMailStoreメソッドを呼び出して、そこでreturnされてくるMailStore型のクラスの中の、isNewMailメソッドを呼び出している」というのを一回で書いてしまっている書き方ということで合っているでしょうか?少しピンと来ないので・・(特にreturnされるメソッド(getMailStore)にそのまま.[メソッド]という書き方をのっけるあたりが)

よろしくお願いします。

javaを勉強している者です。

少しピンと来ない書き方があるのですがそれはタイトルの通りの書き方で、具体的には

Main.getMailStore().isNewMail()

という書き方です。MailというのがクラスでgetMailStore()というのがそのクラスで宣言されているメソッドで下記のように実装されています。(MailStoreというのはインターフェースとして別のファイルで宣言されています。)

private static MailStore _mailStore;

public static MailStore getMailStore(){
return _mailStore;
}

(MailSt...続きを読む

Aベストアンサー

あってます。


人気Q&Aランキング

おすすめ情報