是否可以在静态方法中返回一个类?我会解释...
I have:
public class A { public static void blah(){} }
public class B { }
我想在 B 中创建一个静态方法返回A
。所以你可以这样做:
A.blah();
And
B.getA().blah();
这,无需创建实例A
。只需使用静态方法即可。
这可能吗?
这是对@irreputable 答案的反驳:
public class B {
public static A getA(){ return null; }
}
B.getA().blah(); //works!
它“有效”,但可能不是您期望的那样,而且肯定不是以有用的方式。让我们将其分为两部分:
A a = B.getA();
a.blah();
第一条语句返回一个(在本例中为 null)实例A
,第二条语句忽略该实例并调用A.blah()
。所以,这些语句实际上等价于
B.getA();
A.blah();
或(鉴于getA()
无副作用),很简单
A.blah();
这是一个更清楚地说明这一点的示例:
public class A {
public static void blah() { System.err.println("I'm an A"); }
}
public class SubA extends A {
public static void blah() { System.err.println("I'm a SubA"); }
}
public class B {
public static A getA(){ return new SubA(); }
}
B.getA().blah(); //prints "I'm an A".
...这(我希望)说明了为什么这种方法不能解决OP的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)