学校の課題で電卓を作っています。
dentaku.BOはabstractではなく、java.awtevent.ActionListener内の abstractメソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません
というエラーと、
互換性のない型
検出値:java.lang.String
期待値:boolean
if(fugo="+")
^
と、
演算子 - はjava.lang.String,java.lang.String に適応出来ません
str= num1-num2;
^
この3種類のエラーはざくざく出てくるのですが、具体的にどう修正したらいいのか分かりません。どなたか教えてくださいm(_ _)m
ソース載せようとしたら文字数オーバーしてしまいましたorz
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
#1です。
> kekka= num1+num2;
> Integer.toString(kekka); //kekkaをStringに変換
> str = kekka;
> 検出値:int 期待値:~String で出てきてしまって
#1の補足について回答しようと思いましたが
#3の方が回答していましたね。
str = kekka;
ここで指定しているkekkaはint型だからString型にはいれられません。
えい、おまけだぁ。
str = Integer.toString(kekka); //kekkaをStringに変換
No.5
- 回答日時:
専門家に突っ込むのもちょっとアレかと思いつつ:
C/C++ ならともかく, Java では「条件式が必要なところで比較と間違えて代入を書く」とほとんどの場合にエラーになります. だから, あんまり
1==a のように書く
必要性はありません. ただし間違っていてしかもエラーにならないときは盛大なバグのもとになるのでそれはそれで要注意です.
とはいえ, この比較って「不自然」だよなぁ.
む, 「演算子 - はjava.lang.String,java.lang.String に適応出来ません」ってメッセージも (本当なら) おそらく誤訳. 意味としては adopt じゃなくて apply なので, 「適応」ではなく「適用」のはずだ.
No.4
- 回答日時:
> if(fugo="+")
の部分についてです。
他の方からのアドバイスで if(fugo.equals("+")) に修正されたようなので良いですが・・・。
if(fugo="+") というのは比較ではなく、「変数fugoに"+"を代入する」という代入演算子です。
2つのものが同じかどうか比較するための演算子は == です。
仮に変数aがint値だったとすると if(a==1) と記述しなければなりません。
些細な記述の違いですが、仕事でJavaのコーディングをしている人間でもたまに記述ミスをして、これがなかなか厄介なバグになることもあるので今後は注意して下さいね。
もし比較演算子を使うことがあれば、
if(1==a)
と書くのも1つの予防策になります。
[(1=a)と書き間違えても、数値に変数は代入できないのでコンパイルエラーが発生します。]
No.3
- 回答日時:
> 修正前はvoid actionPerformed(ActionEvent e)ってなってたんですが、略(?)したのがいけなかったのか・・・?
パッケージ名を略してActionEventとだけ書くなら、前のほうに
import java.awt.event.ActionEvent;
とか
import java.awt.event.*;
と予め書いておく必要があります。
修正前は「ActionEventというクラスが見つからない」という意味のエラーが出ていませんでしたか?
> Integer.toString(kekka); //kekkaをStringに変換
> str = kekka;
上のコードでは、toString()の返り値(= String型への変換結果)を使わずに捨ててしまっています。返り値を捨てずに変数strに代入してください。
toString()を実行しても、kekkaという変数の型がStringに変わるわけではありません。
No.2
- 回答日時:
> dentaku.BOはabstractではなく、java.awtevent.ActionListener内の abstractメソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません
dentaku.BOクラスの定義に implements ActionListener と書いてあるのだろうと思われます。
- もし必要がないのであれば、dentaku.BOクラスの定義から implements ActionListener を消してしまってください。
- ActionListenerをimplementsする必要があるのであれば、dentaku.BOクラスの中で、void actionPerformed(java.awt.event.ActionEvent)という型のメソッドを自分で定義しましょう。
エラーがなくなりました。丁寧な指示、ありがとうございます!
implements ActionListener は残したまま、void actionPerformed(java.awt.event.ActionEvent)を追加しました。修正前はvoid actionPerformed(ActionEvent e)ってなってたんですが、略(?)したのがいけなかったのか・・・?
No.1
- 回答日時:
回答じゃなくてヒントのみ。
> 検出値:java.lang.String
> 期待値:boolean
> if(fugo="+")
『if()の中はboolean値を期待しているのに、String値がはいってるよ。』
fugoはString型でしょうか?
Stringの比較はequals()メソッドを使えばいいよ。
> str= num1-num2;
『演算子 - の結果はStringにいれられないよ。』
strはString型でしょうか?
strをnum1、num2と同じ型にするか、
結果をString型に変換してからstrにいれればいいよ。
この回答への補足
equalメソッドを使って、
if(fugo.equals("+")){
//fugoが+だった時num1とnum2を足す
kekka= num1+num2;
Integer.toString(kekka); //kekkaをStringに変換
str = kekka;}
こんな感じにしたらfugo=+の問題は解決しました。ありがとうございますm(_ _)m
ですが、その後も互換性のない型のエラーが
検出値:int 期待値:~String で出てきてしまって、toString()を使ってみたんですが、うまくいかず…。どの辺が間違っているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java Javaについて質問です。 勉強し始めたばかりの初心者です。 相続税について課税額を算出するコードを 1 2022/05/31 19:02
- Java すみません。助けてください。 javaについての質問です。 integerに変換できない数値をエラー 5 2022/05/18 19:16
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java です 途中は省いてますが for(int i = 0; i < 25; i ++) { s 4 2022/05/20 23:36
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java JavaでWebページ作成 7 2023/07/21 21:09
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
eclipseに記述したjavaファイル...
-
ある年月の前月(月の開始日)...
-
setAttribute(String, int)は適...
-
なんかエラーがでた
-
java初心者です。座標取得と図...
-
GridBagLayoutについての質問
-
どうしてもプログラムが動いて...
-
文字列を数式に
-
(急募)Javaじゃんけんゲームで
-
AndroidStudio SQL文の値を取得...
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
日数計算の方法
-
データの外挿について
-
アプレットを実行すると、×が表...
-
<forEach> 内で供給された "ite...
-
ファイル名を動的に生成したい
-
(急募) Java (CSVをしよう)一...
-
(大至急お願い。)Javaじゃんけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
eclipseに記述したjavaファイル...
-
<forEach> 内で供給された "ite...
-
setAttribute(String, int)は適...
-
干支の計算で。。。
-
Javaを使ってデジタル時計を作...
-
HTMLでのTableタグデータ取得方法
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
文字列を数式に
-
シャットダウンフックが呼ばれない
-
Javaで常駐するソフトを作って...
-
フレームの×ボタンを押しても閉...
-
Selenium IDEでexportしたコー...
-
文字サイズが可変のラベル
-
jFrameを使って複数の画面を生...
-
【java】検索フォームの検索結...
-
Java での グローバルIP取得
-
(急募)JavaカレンダーをGUI可に...
-
ファイル名を動的に生成したい
おすすめ情報