在 StringBuilder 类中,我可以这样做:
StringBuilder sb = new StringBuilder();
sb.append( "asd").append(34);
方法 append 返回 StringBuilder 实例,我可以继续调用它。
我的问题是可以在静态方法上下文中这样做吗?没有类实例
在 StringBuilder 类中,我可以这样做:
StringBuilder sb = new StringBuilder();
sb.append( "asd").append(34);
方法 append 返回 StringBuilder 实例,我可以继续调用它。
我的问题是可以在静态方法上下文中这样做吗?没有类实例
是的。像这样(未经测试)。
public class Static {
private final static Static INSTANCE = new Static();
public static Static doStuff(...) {
...;
return INSTANCE;
}
public static Static doOtherStuff() {
....
return INSTANCE;
}
}
您现在可以拥有类似的代码。
Static.doStuff(...).doOtherStuff(...).doStuff(...);
我会建议反对它。
这称为方法链。
为此,您总是需要一个实例化的对象。所以,对不起,但你不能在静态上下文中这样做,因为没有与之关联的对象。
你想要这个吗 ?
public class AppendOperation() {
private static StringBuilder sb = new StringBuilder();
public static StringBuilder append(String s){
return sb.append(s);
}
public static void main(String... args){
System.out.println(AppendOperation.append("ada").append("dsa").append("asd"));
}
}
也许我没有正确理解问题(静态上下文)
你是这个意思吗?
静止的 {
} //当然你也可以这样做
如果不是以上所有,你不能没有任何静态方法,因为 append() 不是静态的
您想要静态的构建器模式吗?不。最好将您的静态数据转换为实例。
如这里所说,您可以简单地返回null
。例如:
public class MyClass {
public static MyClass myMethod() {
doSomething();
return null;
}
}