это невозможно, но используя static imports есть.
public class StaticHelper {
public static void doSomething() {
System.out.println("I just did something !!");
}
public static void doSomethingElse() {
System.out.println("I just did something else !!");
}
}
в другом классе:
import static StaticHelper.*;
class Other {
public static void main(String[] args) {
doSomething(); // calls static methods from StaticHelper
doSomethingElse();
}
}
или - если методы логически связаны - вы можете иметь один статический фабричный метод, а остальные методы экземпляра:
public class StaticHelper {
public static void beginDoingSomething() {
// static factory method - you can pass parameters to it if needed
System.out.println("I just did something !!");
return new StaticHelper();
// if needed, initialize the instance with the parameters
}
public StaticHelper andDoSomethingElse() {
// instance method
// can use the instance parameters (passed to the constructor in the static factory method)
// or use parameters passed to this method
System.out.println("I just did something else !!");
return this;
// returns this for chaining
}
}
в другой класс:
import static StaticHelper.*;
class Other {
public static void main(String[] args) {
doSomething().andDoSomethingElse().andDoSomethingElse();
}
}
Если назвать методы хорошо, Вы можете сформировать предложение:
validate(object).checkEmail().checkName().checkTelephoneStartsWith("+11");
где validate(object)
статический фабричный метод построения нового экземпляра валидатор для данного object
.
Java статически типизированный. То, что вы пытаетесь сделать, не имеет смысла. Либо вызовите статические методы напрямую, либо вызовите методы экземпляра, используя интерфейсы. – Andreas
Могу я спросить: почему вы хотите это сделать? ** static ** следует рассматривать как неудобную вещь в объектно-ориентированном программировании; и у него много недостатков; например, он может очень тяжело писать блок-тесты - так почему вы хотите использовать статику таким образом? – GhostCat
Обратите внимание: статистические данные являются плохими, если у вас есть статические члены, также называемые GLOBAL STATE. Если статические классы не содержат ГЛОБАЛЬНОЕ СОСТОЯНИЕ, им не больно подвергаться тестированию на единицу. –