[英]How to call a method from a static class in another class?
我在静态类“ a”中有一个方法“ b(Class g)”
所以myclass.java包含...
public static class a{
public void b(Class g){
....
}
}
比同一个myclass.java中的另一个方法
public void c(){
if(...){}
else{
b(); //i want to call b but i get an error asking me to create the method
}
您的方法b
需要一个Class
类型的参数,这就是它抱怨的原因。
更新
您也有一个奇怪的类声明public static class a
根据Java关于类声明的规范,并非所有修饰符都适用于所有种类的类声明…… The access modifier static pertains only to member classes
,这意味着您在公共类声明中使用了错误的static修饰符。
首先将您的顶级类声明更改为public class a
,然后查看其行为。
有两点需要注意:1)即使内部类'a'被声明为静态的,方法b(Class g)
也不是静态的。 因此,为了访问类“ a”的b(Class g)方法,您仍然需要创建“ a”的实例,即
a a1 = new a();
a1.b(SomeClass.class);
重要提示:声明一个类为静态并不会使该类的方法成为静态。
2)调用方法b(Class g)
,您需要传递Class参数。 调用b();
没有参数将导致错误。
如果要在不创建类'a'的实例的情况下调用b(Class g)
,则将方法b(Class g)
标记为静态。 即
public static class a{
static public void b(Class g){
....
}
}
为了更好地了解静态嵌套类,请阅读此内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.