是否有任何技术可以在其他类的静态方法中使用某个类的非静态方法的返回值?
非静态方法的当前叫法是实例方法,因为它只能在其类的实例上调用。因此,您需要的是用new
创建的类的实例,然后您可以在其上调用实例方法。
我建议阅读Java教程中的OO概念介绍
如果没有任何代码,很难知道要做什么(甚至尝试一下也很好),但是…
也许你想要单例模式:
public class MyClass {
private static final MyClass INSTANCE = new MyClass();
private MyClass() {}
public static MyClass getInstance() {
return INSTANCE;
}
public int someMethod() {
// return some value;
}
}
然后从另一个类:
public class TheirClass {
public static int whatever() {
return MyClass.getInstance().someMethod();
}
}
创建该class的实例,然后执行return instance.method();
如果要调用非静态方法,则必须针对包含该方法的类的实例。
只要静态方法中有其他类型的对象可用,您就可以在该对象上调用该方法。
对象可以在静态方法中创建,作为参数传递给它,或者作为静态字段。
在静态方法中,创建非静态方法所在类的实例,并在创建的对象上调用非静态方法。
没有别的办法,因为一个非静态方法可以调用其他非静态的静态方法,而且它也可以使用对类实例的引用("this");所以它只能在类的实例上调用:
公共类A{
public int NonStaticMethodA() { int val; ..... return val; } public int NonStaticMethodB() { int val=this.NonStaticMethodA(); ..... return val; }
}
公共类B{
public static void StaticMethod() { A a = new A(); int value = a.NonStaticMethodB(); ..... } }