同一范围中不能存在具有相同名称(但类型不同)的变量。考虑一下是否有可能,那么Java编译器将如何确定您的意思。
考虑一下此代码段
class test{ private int x; private double x; test() //constructor { System.out.println(x); //Error cannot determine which x you meant } }Java编译器无法理解您实际上指的是哪个x。因此,这样的代码在语法上是不正确的且不可编译。
但是,存在诸如ClassEditor之类的工具,它们可以在创建生成的类文件之后对其进行修改。可以将两个变量的名称更改为相同。
但是,此类不必由Java jvm运行。
您引用的软件即
JAD可以在类文件中重命名此类重复的命名变量,这样您将获得的源代码实际上在语法上是正确的



