public class PrefixNameTransformer implements NameTransformer { private final String prefix; public PrefixNameTransformer(String prefix) { this.prefix = prefix; } @Override public String transform(final String name) { return name.startsWith(prefix) ? name.substring(prefix.length()) : name; } }这个代码为什么报错:Class 'PrefixNameTransformer' must either be declared abstract or implement abstract method 'transform(String, NameableType)' in 'NameTransformer'
时间: 2024-03-22 09:41:46 浏览: 21
这个代码报错是因为实现了 `NameTransformer` 接口但是没有实现该接口的所有抽象方法,具体来说就是缺少了 `transform(String, NameableType)` 方法的实现。
因为 `NameTransformer` 接口中有两个抽象方法,一个是 `transform(String)`,另一个是 `transform(String, NameableType)`,而你的代码只实现了前者,缺少了后者,所以编译器报错。
要解决这个问题,你需要在 `PrefixNameTransformer` 类中添加一个实现了 `transform(String, NameableType)` 方法的代码块,如下所示:
```
public class PrefixNameTransformer implements NameTransformer {
private final String prefix;
public PrefixNameTransformer(String prefix) {
this.prefix = prefix;
}
@Override
public String transform(final String name, final NameableType type) {
return transform(name);
}
@Override
public String transform(final String name) {
return name.startsWith(prefix) ? name.substring(prefix.length()) : name;
}
}
```
这个代码中,我们添加了一个实现 `transform(String, NameableType)` 方法的代码块,其中的实现方式是调用了 `transform(String)` 方法的实现。这样就可以通过编译了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)