質問編集履歴

2

質問の変更

2021/05/27 14:33

投稿

NASKA--
NASKA--

スコア21

test CHANGED
File without changes
test CHANGED
@@ -16,17 +16,17 @@
16
16
 
17
17
  public class CalculatorFunc {
18
18
 
19
- HashMap<String,DoubleUnaryOperator> optable = new HashMap<String,DoubleUnaryOperator> ();
19
+ HashMap<String,DoubleUnaryOperator> optable = new HashMap<> ();
20
20
 
21
21
  void run() {
22
22
 
23
- optable.put("+", (x, y) -> {(x+y)});
23
+ optable.put("+",(x,y) -> {return x+y;});
24
24
 
25
- optable.put("-", (x, y) -> {(x-y)});
25
+ optable.put("-",(x,y) -> {return x-y;});
26
26
 
27
- optable.put("*", (x, y) -> {x*y});
27
+ optable.put("*",(x,y) -> {return x*y;});
28
28
 
29
- optable.put("/", (x, y) -> {x/y});
29
+ optable.put("/",(x,y) -> {return x/y;});
30
30
 
31
31
  Scanner sc = new Scanner(System.in);
32
32
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  double v1 =stack.pollFirst();
68
68
 
69
- double value = optable.get(st).Double.parseDouble(st);
69
+ double value = optable.get(st).applyAsDouble(value);
70
70
 
71
71
  // スタックにプッシュする処理を下に書く
72
72
 
@@ -102,18 +102,40 @@
102
102
 
103
103
  ```
104
104
 
105
- このような形で作ったのですが、のエラーが出てきます。
105
+ このような形で作ったのですが、以下部分だけエラーが出てきます。どのように修正すれば良いでしょうか
106
106
 
107
- 調べてみましたが、解決法がわからず、どのように修正すれば良いか教えていただきたいです
107
+ ```java
108
108
 
109
- ```エラーメッセージ
109
+ optable.put("+",(x,y) -> {return x+y;});
110
110
 
111
+ optable.put("-",(x,y) -> {return x-y;});
112
+
113
+ optable.put("*",(x,y) -> {return x*y;});
114
+
111
- Exception in thread "main" java.lang.Error: Unresolved compilation problem:
115
+ optable.put("/",(x,y) -> {return x/y;});
116
+
117
+ ```
112
118
 
113
119
 
114
120
 
115
- at prog2.CalculatorFunc.main(CalculatorFunc.java:43)
121
+ エラーメッセージ
116
-
117
-
118
122
 
119
123
  ```
124
+
125
+ - Lambda expression's signature does not match the signature of the functional
126
+
127
+ interface method applyAsDouble(double)
128
+
129
+ - 型 HashMap<String,DoubleUnaryOperator> のメソッド put(String,
130
+
131
+ DoubleUnaryOperator) は引数 (String, (<no type> x, <no type> y) -> {}) に適用できませ
132
+
133
+
134
+
135
+ - 構文エラーがあります。";" を挿入して BlockStatements を完了してください
136
+
137
+ - 構文エラーがあります。"AssignmentOperator Expression" を挿入して Assignment
138
+
139
+ を完了してください
140
+
141
+ ```

1

プログラムの加筆

2021/05/27 14:33

投稿

NASKA--
NASKA--

スコア21

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- 一応形だけできんですが、部分ごとにわからない部分あるため、そこを教えていただきたいで
7
+ プログラム作りましたが、エラーしま
8
8
 
9
9
  ```java
10
10
 
@@ -16,17 +16,17 @@
16
16
 
17
17
  public class CalculatorFunc {
18
18
 
19
- HashMap<String,?? > optable = new HashMap<String,?? > ();
19
+ HashMap<String,DoubleUnaryOperator> optable = new HashMap<String,DoubleUnaryOperator> ();
20
20
 
21
21
  void run() {
22
22
 
23
- optable.put("+", (x, y) -> {??});
23
+ optable.put("+", (x, y) -> {(x+y)});
24
24
 
25
- optable.put("-", (x, y) -> {?? });
25
+ optable.put("-", (x, y) -> {(x-y)});
26
26
 
27
- optable.put("*", (x, y) -> {??});
27
+ optable.put("*", (x, y) -> {x*y});
28
28
 
29
- optable.put("/", (x, y) -> {?? });
29
+ optable.put("/", (x, y) -> {x/y});
30
30
 
31
31
  Scanner sc = new Scanner(System.in);
32
32
 
@@ -62,13 +62,15 @@
62
62
 
63
63
  // 演算の処理
64
64
 
65
- double v2 =?? ;
65
+ double v2 =stack.pollFirst();
66
66
 
67
- double v1 =?? ;
67
+ double v1 =stack.pollFirst();
68
68
 
69
- double value = optable.get(st).?? ;
69
+ double value = optable.get(st).Double.parseDouble(st);
70
70
 
71
71
  // スタックにプッシュする処理を下に書く
72
+
73
+ stack.push(value);
72
74
 
73
75
  } else {
74
76
 
@@ -78,11 +80,13 @@
78
80
 
79
81
  // スタックにプッシュする処理を下に書く
80
82
 
83
+ stack.push(value);
84
+
81
85
  }
82
86
 
83
87
  }
84
88
 
85
- double ans =?? ;
89
+ double ans =stack.pop();
86
90
 
87
91
  return ans;
88
92
 
@@ -98,4 +102,18 @@
98
102
 
99
103
  ```
100
104
 
101
- ??部分が何を書けばいいのかわからい場所です
105
+ よう作ったのでが、次のエラーが出てきます。
106
+
107
+ 調べてみましたが、解決法がわからず、どのように修正すれば良いか教えていただきたいです
108
+
109
+ ```エラーメッセージ
110
+
111
+ Exception in thread "main" java.lang.Error: Unresolved compilation problem:
112
+
113
+
114
+
115
+ at prog2.CalculatorFunc.main(CalculatorFunc.java:43)
116
+
117
+
118
+
119
+ ```