继承WebMvcConfigurer的类,注册类型转换器和格式器,需要覆写哪个方法
时间: 2024-04-06 20:33:36 浏览: 12
需要覆写`addFormatters`方法。`WebMvcConfigurer`接口中定义了许多用于配置`Spring MVC`的方法,`addFormatters`方法用于注册类型转换器和格式器。覆写该方法后,可以通过调用`WebDataBinder`的`registerCustomEditor`方法或`FormatterRegistry`的`addFormatter`方法来注册类型转换器和格式器。
相关问题
父类的构造方法中调用可能被子类覆写的方法造成什么后果
在父类的构造方法中调用可能被子类覆写的方法可能会引发一些意想不到的问题,因为在子类的构造方法中,它的成员变量可能还未被初始化完成,此时调用被覆写的方法可能会导致意想不到的结果,例如空指针异常等。
具体来说,当父类的构造方法中调用一个被子类覆写的方法时,如果子类中的该方法引用了子类中的成员变量,而这些成员变量在父类的构造方法中还未被初始化,那么就可能会导致子类中的该方法出现异常。
例如,以下代码演示了在父类的构造方法中调用被子类覆写的方法可能导致的问题:
```java
public class Animal {
public Animal() {
move(); // 调用被子类覆写的方法
}
public void move() {
System.out.println("Animal is moving");
}
}
public class Dog extends Animal {
private String name;
public Dog(String name) {
super();
this.name = name;
}
@Override
public void move() {
System.out.println(name + " is running");
}
}
public class Test {
public static void main(String[] args) {
Dog dog = new Dog("Tom");
}
}
```
在上面的代码中,父类Animal的构造方法中调用了被子类Dog覆写的方法move(),而子类Dog中的move()方法引用了成员变量name,而这个成员变量在父类Animal的构造方法中还未被初始化。因此,在运行上面的代码时,会出现空指针异常。
为了避免这种问题,我们应该尽量避免在父类的构造方法中调用被子类覆写的方法。如果必须要调用,可以将该方法设置为final类型,或者将该方法放在父类的构造方法之后进行调用。
编写一个circle类,生成对象时实现参数赋值,覆写getarea方法
好的,以下是一个简单的Python Circle类的实现,其中包含参数赋值和覆写get_area方法:
```python
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def get_area(self):
return 3.14 * (self.radius ** 2)
```
在这个类中,我们继承了Shape类,并实现了get_area方法。我们还添加了一个构造函数,以便在生成Circle对象时可以传递半径参数并将其赋值给self.radius。在覆写的get_area方法中,我们使用公式3.14 * (半径的平方)来计算圆的面积。