回答
我能想到的唯一冲突是
int sameName = 5;
public int sameName() {
//method body
return 100;
}
如果你写“this.sameName”时,你应该写“this.sameName()”和反之亦然在程序的某个地方然后代码的湮没才刚刚开始。
但这只是一个错误。这仍然是合法的。 :D – zEro 2013-07-08 13:50:55
@vikingsteve:P – 2013-07-09 07:03:08
对于较粗体的+1:O – vikingsteve 2013-07-09 07:04:36
这完全没问题,因为方法和变量的调用方式不同。
代码:
String name = "myVariable";
public String name() {
return "myMethod";
}
System.out.println(name()); // Brackets for method call
System.out.println(name); // No brackets for variable call
输出:
的MyMethod
MYVARIABLE
你可以,但它是一种抗PA ttern,应尽量避免,并且可以通过分析,像这样被抓:
其实,我遇到了一个问题,这是非常具体的。它只是表现在Java 8(使用Nashorn),而不是Java 6(使用Rhino)。如果它试图通过Javascript访问一个Java对象的实例变量,那么[]
运算符会改为返回方法实例。
让我们假设我运行下面的Java声明:
class MyClass {
private boolean isSet=false;
public boolean isSet() { return isSet; }
}
如果我在处理JavaScript等类的一个对象,然后尝试用[]
操作符来访问它,我得到的方法参考。
var obj = new MyClass();
var myfields = (myclass.getClass()).getDeclaredFields();
var myfieldname = myfields[0].name;
// The following prints the method declaration, not the boolean value:
// [jdk.internal.dynalink.beans.SimpleDynamicMethod boolean MyClass.isSet()]
println(obj[myfieldname]);
更新:显然,Nashorn's method overloading resolution mechanism(“含蓄”或非有意的)提供更高的优先级的方法,而不在具有相同名称的实例字段变量。
- 1. 方法参数和实例变量名称相同的混淆
- 2. 方法和变量名称相同
- 3. 具有相同名称的PHP变量
- 4. 派生类中的实例变量与超类的私有实例变量具有相同的名称?
- 5. 具有相同名称的方法
- 6. Javascript私有变量和参数具有相同的名称
- 7. 具有相同变量名称的变量作用域?
- 8. 具有相同名称的Visual Basic句柄和多个变量
- 9. C++变量具有相同的名称,上下文:global和private,
- 10. 函数和变量具有相同的名称
- 11. 匹配2具有相同实例名称的不同对象
- 12. Java:如何从不同类实例化的不同对象中调用具有相同名称的方法?
- 13. 的Java:调用具有名称的方法保存在变量
- 14. 访问的封闭变量时,该方法具有使用相同的名称
- 15. 相同的变量名称和方法TypeScript
- 16. 如何调用和测试具有相同名称的方法?
- 17. 具有相同名称的Php类和特征方法
- 18. 具有相同名称的全局变量和局部变量使用Javascript
- 19. 2具有相同实例名称的动画片段
- 20. 使用类方法没有使用相同的名称实例方法
- 21. 成员变量和本地方法变量可以具有相同的名称吗?
- 22. 具有相同类名的变量?
- 23. 创建一个实例变量,它代表具有相同名称但具有不同类中的唯一值的其他变量(Java)
- 24. 具有相同名称但不同的HTTP方法
- 25. 返回具有最高'someValue'实例变量的类实例的名称
- 26. Java:不同包中具有相同名称的类的本地方法
- 27. 具有相同名称的子类变量
- 28. 推论显示两个具有相同名称的变量?
- 29. 具有相同名称的多个变量
- 30. 访问具有相同名称的PHP对象变量?
你为什么不直接尝试一下呢? :) – 2012-03-31 23:27:20
这是不允许在C#中。 – 2015-05-01 12:15:44