📅  最后修改于: 2023-12-03 15:28:11.834000             🧑  作者: Mango
在 Java 中,我们可以通过调用另一个类中的方法来重复使用代码,而不必在每个类中都创建相同的方法或代码。本文将介绍如何在 Java 中调用另一个类的方法,同时避免创建实例的过程。
Java 中的静态方法是类级别的方法。这意味着您不需要创建类的实例即可调用它们。为了调用静态方法,只需使用类名称和方法名称即可。以下是一个示例:
public class MyClass {
public static void myMethod() {
System.out.println("Hello world!");
}
}
public class AnotherClass {
public static void main(String[] args) {
MyClass.myMethod();
}
}
在这个例子中,我们通过类名称 MyClass
来调用 myMethod()
方法,而不必先创建 MyClass
的实例。
Java 中的反射 API 允许您在运行时获取类和方法的信息,以及在运行时调用方法。使用反射 API,您可以在不创建类实例的情况下调用方法。以下是一个示例:
import java.lang.reflect.Method;
public class MyClass {
public void myMethod() {
System.out.println("Hello world!");
}
}
public class AnotherClass {
public static void main(String[] args) throws Exception {
Class<?> clazz = MyClass.class;
Method method = clazz.getMethod("myMethod");
Object object = clazz.newInstance();
method.invoke(object);
}
}
在这个例子中,我们使用反射 API 获得了 MyClass
的类对象,然后使用 getMethod()
方法获取了 myMethod()
方法的引用。随后,我们使用 newInstance()
方法创建了 MyClass
的实例,最后使用 invoke()
方法调用了 myMethod()
方法。
需要注意的是,在使用反射 API 调用方法之前,需要先获得方法的引用和类实例的引用,这样处理起来比较麻烦。
如果您想要在创建匿名内部类时调用另一个类中的方法,而不必显式地创建该类的实例,这是个好方法。以下是一个示例:
interface MyInterface {
void myMethod();
}
public class MyClass {
public void anotherMethod() {
System.out.println("Hello world!");
}
}
public class AnotherClass {
public static void main(String[] args) {
MyInterface myInterface = new MyInterface() {
@Override
public void myMethod() {
new MyClass().anotherMethod();
}
};
myInterface.myMethod();
}
}
在这个例子中,我们创建了一个 MyInterface
的匿名内部类,实现了其中的 myMethod()
方法。在 myMethod()
方法中,我们创建了 MyClass
的实例并调用了其中的 anotherMethod()
方法。
虽然这个方法看起来比较简单,但需要注意的是,它不适用于需要参数的方法调用。
本文介绍了在 Java 中调用另一个类的方法而不必创建实例的方法。我们可以使用静态方法、反射和匿名内部类来实现这个目的。选择哪种方法取决于您的代码结构和需求。