Java 我在考试课上遗漏了什么?
我一直收到错误(java:找不到symbol:方法getType())Java 我在考试课上遗漏了什么?,java,junit,Java,Junit,我一直收到错误(java:找不到symbol:方法getType()) 公共类Shape{getCircleRadius和getType方法在Shape类上,但您是代码引用Shape.ShapeType.getCircleRadius 您需要在Shape实例上引用getCircleRadius,该实例可能是用新的Shape(ShapeType,double)Shape.ShapeType.getType()创建的;属于Shape类,而不是ShapeType类。而且,它不是静态的,因此您需要首先实
公共类Shape{
getCircleRadius
和getType
方法在Shape
类上,但您是代码引用Shape.ShapeType.getCircleRadius
您需要在
Shape
实例上引用getCircleRadius
,该实例可能是用新的Shape(ShapeType,double)
Shape.ShapeType.getType()创建的;
属于Shape
类,而不是ShapeType
类。而且,它不是静态的,因此您需要首先实例化Shape
我不是已经在ShapeTest类的第二行实例化了形状吗?第二行在第一行之后,这就是问题所在。啊,好的。我切换了它们。但是它是“无法解析方法getType”,即使我在Shape.edit(add to)中用新代码定义了它。getType()方法如何?编译器说我无法实例化枚举?此外,即使在Shape实例上引用getCircleRadius,测试也会失败…(java.lang.AssertionError:使用assertEquals(预期、实际、增量)为了比较浮点数,在ShapeTest.getCircleRadius(ShapeTest.java:15)getType()
也在Shape
类中,因此您可以对其执行相同的操作。此外,由于您处理的是double
s,您应该使用assertEquals(5.0,Shape.getCircleRadius(),0.0001)
或其他一些非常小的增量。通常情况下,在进行计算时,浮点数并不精确。