質問編集履歴
2
質問の変更
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<
|
19
|
+
HashMap<String,DoubleUnaryOperator> optable = new HashMap<> ();
|
20
20
|
|
21
21
|
void run() {
|
22
22
|
|
23
|
-
optable.put("+",
|
23
|
+
optable.put("+",(x,y) -> {return x+y;});
|
24
24
|
|
25
|
-
optable.put("-",
|
25
|
+
optable.put("-",(x,y) -> {return x-y;});
|
26
26
|
|
27
|
-
optable.put("*",
|
27
|
+
optable.put("*",(x,y) -> {return x*y;});
|
28
28
|
|
29
|
-
optable.put("/",
|
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
|
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
|
-
|
115
|
+
optable.put("/",(x,y) -> {return x/y;});
|
116
|
+
|
117
|
+
```
|
112
118
|
|
113
119
|
|
114
120
|
|
115
|
-
|
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
プログラムの加筆
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,
|
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
|
+
```
|