In StringBuilder class I can do like this:
StringBuilder sb = new StringBuilder();
sb.append( "asd").append(34);
method append returns StringBuilder instance, and I can continuosly call that.
My question is it possible to do so in static method context? without class instance
Yes. Like this (untested).
public class Static {
private final static Static INSTANCE = new Static();
public static Static doStuff(...) {
...;
return INSTANCE;
}
public static Static doOtherStuff() {
....
return INSTANCE;
}
}
You can now have code like.
Static.doStuff(...).doOtherStuff(...).doStuff(...);
I would recommend against it though.
This is called method-chaining.
To do it, you always need an instantiated object.
So, sorry, but you cannot do it in a static context as there is no object associated with that.
You want the builder pattern on a static? No. Best to convert your statics to instances.
Do you want this ?
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"));
}
}
maybe I don't understand the question (static context) correctly
do you mean this?
static {
} //of course you can do this, too
if not all above, you can't do without any static method because append() is not static
As said here You can simply return null
.
For example:
public class MyClass {
public static MyClass myMethod() {
doSomething();
return null;
}
}