分数类故障(Java)

时间:2017-03-14 20:15:11

标签: java oop calculator

我正在尝试将Fraction个对象存储在类型Stack的{​​{1}}中,然后检索它们以对它们执行算术计算,但是,对象正在转换为类型{{ 1}}当我把它们放入堆栈时我无法将它们转换回类型Number。编译错误发生在下面的源代码的第19行。我该如何解决?

源代码:

Number

Fractionimport java.util.Scanner; import java.util.Stack; public class Test{ public static void main(String[] args){ String line = "3/4"; Scanner input = new Scanner(line); Stack<Number> numbers = new Stack<>(); while (input.hasNext()){ if (input.hasNext("/")){ numbers.push(new Fraction(input.next())); } } if (numbers.peek() instanceof Fraction){ Fraction rhs = numbers.pop(); System.out.println(rhs.getFraction()); } } } ,因为我需要能够存储Fractionexends NumberIntegersDoubles个数字来支持类型间数学运算。请注意,这不是整个Fraction类,但它是我用于编译这个小测试程序的全部内容。

Fractions

1 个答案:

答案 0 :(得分:1)

这与Fraction无关。如果Fraction子类Number,那么您应该能够从Number投射到Fraction。像

这样的东西
Fraction rhs = (Fraction) numbers.pop()