gpt4 book ai didi

java - 从内部类解析方法名称

转载 作者:行者123 更新时间:2023-12-01 07:27:04 26 4
gpt4 key购买 nike

public class X {

public void close() {
// ...
}

public class XInputStream extends InputStream {

public void f() {
close(); // are we calling close() on InputStream or X??
}
}
}
  1. 编译器可以处理这类事情,所以显然它知道要调用哪个方法。语言规范中解决这个问题的规则到底是什么?

  2. 除了重命名我的 close() 方法之外,我还可以采取任何步骤来使此代码更具可读性吗?

最佳答案

JLS 的相关部分是 §6.4.1 。基本上,编译器将在尽可能小的范围内查找正确的方法。它检查的第一个范围位于 XInputStream 中。它找到一个 close 方法,因此调用该方法。

为了使其更具可读性,您可以限定方法调用:this.close() 来调用 InputStream::closeX.this.close () 调用 X::close

关于java - 从内部类解析方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com