[解決済み] ロングを参照できない
2022-02-02 01:22:59
質問
Long cannot be dereferenced"という厄介な問題を解決するために、ほとんどすべてのことをやりましたが、何もうまくいきませんでした。どなたか助けていただけませんか?問題は、私がプログラムがタイムアウトしたかどうかをチェックするときに
if(System.currentTimeMillis().longValue()==finish)
比較はうまくいきません。
public void play()
{
long begin = System.currentTimeMillis();
long finish = begin + 10*1000;
while (found<3 && System.currentTimeMillis() < finish) {
Command command = parser.getCommand();
processCommand(command);
}
if(System.currentTimeMillis().longValue()==finish){
if(found==1){System.out.println("Time is out. You found "+found+" item.");}
else if(found>1 && found<3){System.out.println("Time is out. You found "+found+" items.");}}
else{
if(found==1){System.out.println("Thank you for playing. You found "+found+" item.");}
else if(found>1 && found<3){System.out.println("Thank you for playing. You found "+found+" items.");}
else{System.out.println("Thank you for playing. Good bye.");}
}
}
解決方法は?
System.currentTimeMillis()
はプリミティブな
long
オブジェクトではなく
Long
.
そのため
longValue()
メソッドやそれに対するメソッドは、プリミティブはメソッド呼び出しの対象にはならないからです。
また
longValue()
System.currentTimeMillis() はすでに長い値を返すからです。
これは良いことです。
if(System.currentTimeMillis()==finish){
しかし、実際にはこの条件:
if(System.currentTimeMillis()==finish)
はあり得ません。
true
としても
System.currentTimeMillis() == finish
の中に
while
ステートメントを使用します。
while (found<3 && System.currentTimeMillis() < finish) {
Command command = parser.getCommand();
processCommand(command);
}
なぜなら、while文の終わりと条件評価の間に :
if(System.currentTimeMillis() == finish)
というように、時間がどんどん経過していきます。
だから、むしろ.NETを使うべきでしょう。
if(System.currentTimeMillis() >= finish){
関連
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み】Javaの".class expected "について
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)
-
[解決済み] IntelliJのインスペクションで「シンボルを解決できない」と表示されたが、コードはコンパイルされる
-
[解決済み] Javaでlongをintに安全にキャストする
-
[解決済み] Cannot find symbol" や "Cannot resolve symbol" というエラーはどういう意味ですか?
-
[解決済み] JavaでStringをlongに変換する方法は?
-
[解決済み] LongをIntegerに変換する
-
[解決済み】なぜjava.util.loggingを使用しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合