当前位置: 首页 > 面试题库 >

在类上调用静态方法?

孙熠彤
2023-03-14
问题内容

说,我有一个带有SomeType的具有静态方法的Class对象的引用。有没有一种方法可以调用该方法而不先实例化SomeType?最好不要转义强类型。

编辑:好的,我搞砸了。

interface Int{
    void someMethod();
}

class ImplOne implements Int{
    public void someMethod() {
        // do something
    }
}

Class<? extends Int> getInt(){
    return ImplOne.class;
}

在这种情况下,someMethod()始终不能是静态的。


问题答案:

根据定义,静态方法是在类上调用的,而不是在该类的实例上调用的。

因此,如果您使用:

SomeClass.someStaticMethod()

您没有实例化任何东西(不考虑SomeClass由JVM处理并且超出了您的范围的类本身的类加载和实例化)。

这与已实例化的对象上调用的常规方法相反:

SomeObject o = someObject; // had to be instantiated *somewhere*
o.someMethod();


 类似资料:
  • 我正在为我的项目编写junit测试用例,但我在这里面临一个问题,就是我在我的一个java类(GraphNodes.java)中使用的方法 这是我的Junit测试类 我的junit失败了,它说excepted<3>但actual<0>而且我不能将静态方法仅改为public,因为这会影响代码的某些功能,而且由于我是junit的新手,所以我不知道如何解决这一问题。所以有人能在这里帮助我吗?谢谢!!

  • 我最近对 PHP 5.4 进行了更新,但收到有关静态和非静态代码的错误。 这是错误: 这是第371行: 我希望有人能帮忙。

  • 我正在努力得到一个用户的基础上,他的id或电子邮件后,他登录通过一个表单。这个函数是在user.class.php中定义的,我想在另一个名为profile.php的php文件中调用它,但它仍然给我带来语法错误,我不知道如何修复它。 错误:不推荐使用:不应静态调用非静态方法User::GetUserId()注意:未定义变量:email in 使用getters和setters,函数 下面是profi

  • 问题内容: 我正在做作业,遇到了一些错误。在一个类中,我有此方法: 现在,我收到错误消息“无法从静态上下文中引用非静态方法…”,因此我将getPoints()设置为静态方法,并将变量也设置为静态,并且它可以正常工作。但是在另一种打印对象的方法中,它不起作用(我相信是由于static关键字)。 所以我的问题是,有没有一种方法可以在不创建第二个Class实例的情况下调用方法?这是我所拥有的一般构想代码

  • 问题内容: 没有静态成员可以使用类型参数,但是可以使用泛型类型参数调用静态成员吗​​?例如:- 这里的add()是一个静态方法。 在类似的主题上也有一些C#问题和答案,但是我不太确定如何在Java中使用它。 问题答案: 不,如果A是泛型类型,则无法执行。(Bozho对fast的回答是:),可能认为A是具体类型。 可行的方法如下。 但这可能不是您想要的。 阅读您的评论后,听起来您真正想要做的是: 您

  • 我需要从AsyncTask调用一个非静态方法 必须在onPostExecute中调用此方法 我用过: 编辑:我尝试过: 投掷: