在声明如下所示的匿名类时:
注意,resourcebundle.control是一个具体的类。
从这里截取的片段。
private static void test(Locale locale) {
ResourceBundle rb = ResourceBundle.getBundle("ResourceBundle", locale,
new ResourceBundle.Control() {
@Override
public List<Locale> getCandidateLocales(String baseName, Locale locale) {
if (baseName == null)
throw new NullPointerException();
if (locale.equals(new Locale("it", "IT"))) {
return Arrays.asList(
locale,
Locale.ITALY,
Locale.CHINESE ,
Locale.ROOT);
} else if (locale.equals(Locale.GERMANY)) {
return Arrays.asList(
locale.GERMANY,
// no Locale.CHINESE here
Locale.ROOT);
}
return super.getCandidateLocales(baseName, locale);
}
});
我基本上看到了钥匙的作用 extends
声明匿名类时不使用它。你认为这是理所当然的吗?如果是,什么时候合适使用 extends
在匿名课堂上?
提前谢谢。
1条答案
按热度按时间lhcgjxsq1#
何时使用合适
extends
在匿名课堂上?从未。关键字
extends
适用于命名类,除了扩展类之外,命名类还可以实现接口。相反,匿名类可以实现接口或扩展类,但不能同时实现接口和类。这就是为什么语法中根本没有关键字-只要在一个new
表达式,并为基类或接口的方法提供实现。