在java中,如果对象和类名相同,如何静态调用方法
如何调用对象名与类名相同的任何类的静态方法?实例名不要以大写字母开头 你应该写:在java中,如果对象和类名相同,如何静态调用方法,java,Java,如何调用对象名与类名相同的任何类的静态方法?实例名不要以大写字母开头 你应该写: class SomeClass { static public void someStaticMethod(){}; } SomeClass SomeClass=new SomeClass(); SomeClass.someStaticMethod(); 或者更好: SomeClass someClass=new SomeClass(); 如果你遵循这些非常常见的规则,你就不会有这个问题。 (我正试着
class SomeClass
{
static public void someStaticMethod(){};
}
SomeClass SomeClass=new SomeClass();
SomeClass.someStaticMethod();
或者更好:
SomeClass someClass=new SomeClass();
如果你遵循这些非常常见的规则,你就不会有这个问题。
(我正试着猜这个'-1'从哪里来!!!)实例名称不要以大写字母开头 你应该写:
class SomeClass
{
static public void someStaticMethod(){};
}
SomeClass SomeClass=new SomeClass();
SomeClass.someStaticMethod();
或者更好:
SomeClass someClass=new SomeClass();
如果你遵循这些非常常见的规则,你就不会有这个问题。
(我试图猜测这个'-1'来自哪里!!!)变量名不应该大写,因此您应该:
SomeClass someObject=new SomeClass();
对于静态的和:
SomeClass.someStaticMethod();
对于非静态版本。变量名称不应大写,因此您有:
SomeClass someObject=new SomeClass();
对于静态的和:
SomeClass.someStaticMethod();
对于非静态版本。您不必做任何事情-它将按原样工作(尽管使用这种令人困惑的代码没有什么意义) 中指定了如何处理不明确的名称。特别是: 如果含糊名称是由单个标识符组成的简单名称:
- 如果标识符出现在具有该名称的局部变量声明(§14.4)或参数声明(§8.4.1、§8.8.1、§14.20)或字段声明(§8.3)的范围(§6.3)内,则模糊名称将重新分类为ExpressionName
- [……]
- 否则,如果在包含标识符的编译单元(§7.3)中通过单一类型导入声明(§7.5.1),或通过类型按需导入声明(§7.5.2),或通过单一静态导入声明(§7.5.3),或通过静态按需导入声明(§7.5.4)声明该名称的类型,然后,模糊名称被重新分类为类型名
因此,在您的情况下,
SomeClass
将是您在上面一行声明的变量,它比类型具有优先级。您不必做任何事情,它将按原样工作(尽管使用这样一个混乱的代码没有什么意义)
中指定了如何处理不明确的名称。特别是:
如果含糊名称是由单个标识符组成的简单名称:
- 如果标识符出现在具有该名称的局部变量声明(§14.4)或参数声明(§8.4.1、§8.8.1、§14.20)或字段声明(§8.3)的范围(§6.3)内,则模糊名称将重新分类为ExpressionName
- [……]
- 否则,如果在包含标识符的编译单元(§7.3)中通过单一类型导入声明(§7.5.1),或通过类型按需导入声明(§7.5.2),或通过单一静态导入声明(§7.5.3),或通过静态按需导入声明(§7.5.4)声明该名称的类型,然后,模糊名称被重新分类为类型名
因此,在您的情况下,
SomeClass
将是您在上面一行声明的变量,它比类型具有优先级。这甚至可以通过编译吗?为什么要将类名
和对象名
放在第一位?将包名放在类的前面。i、 ecom.mypackage.SomeClass.someStaticMethod()代码>另外:对象名称应解释此对象存在的原因。如果它只是一个随机的someClass
,那么它无论如何都不应该存在。它是某物的“目标”、“源头”还是“蛙鸣者”?在我看来,变量名等于类名(即使大小写不同)是一种轻微的代码味道。@Isaac是的,这就是我好奇的原因。这甚至可以通过编译吗?为什么要将类名
和对象名
放在第一位?将包名放在类的前面。i、 ecom.mypackage.SomeClass.someStaticMethod()代码>另外:对象名称应解释此对象存在的原因。如果它只是一个随机的someClass
,那么它无论如何都不应该存在。它是某物的“目标”、“源头”还是“蛙鸣者”?在我看来,变量名等于类名(即使它们的大小写不同)是一种轻微的代码味道。@Isaac是的,这让我很好奇是的,我知道。但我很好奇是否还有其他方法,因为声明类和对象相同不会显示任何编译错误。您应该自己尝试并告诉我们答案。然而,只有保持这种非常糟糕的编码习惯,这才有可能。。。(刚才-1消失了;)没关系)是的,我知道。但我很好奇是否还有其他方法,因为声明类和对象相同不会显示任何编译错误。您应该自己尝试并告诉我们答案。然而,只有保持这种非常糟糕的编码习惯,这才有可能。。。(刚才-1消失了;)没关系)