有没有办法在一个方法中运行一个方法,该方法不是来自这个方法所在的类?

时间:2015-12-03 20:43:50

标签: java methods

基本上我要问的是:

public void RunMe(Method method){

}

基本上我的意思是,如果我可以从名为RunMe(Method....

的方法运行名为“method”的方法

2 个答案:

答案 0 :(得分:3)

使用方法作为参数不是正确的方法。

哼哼最好的方法(我认为)做这样的事情就是使用reflection

示例:

public void RunMe(Object target, String methodName){
    Class c = target.getClass();
    Method m = c.getMethod(methodName, new Class[0]);
    m.invoke(target, new Object[0]);
}

如果您需要更多详细信息,可以check here

答案 1 :(得分:0)

如果要访问其类外的方法,则该方法不能是matrix: include: - osx_image: xcode6.4 env: TRAVIS_SWIFT_VERSION=1.2 - osx_image: xcode7.1 env: TRAVIS_SWIFT_VERSION=2.1 方法。如果您不知道privateprivatepublic等是什么,请阅读有关访问级修饰符的内容。

假设您有一个名为static的类,其中一个名为MyClass的方法和myMethod类名为main(),那么您可以这样做:

MainClass
如果您想在不创建class MyClass { static void myMethod() { System.out.println("Testing"); } } public class MainClass { public static void main(String[] args) { foo(); } void foo() { MyClass.myMethod(); } } 对象的情况下访问该方法,则

myMethod必须是静态的。但是,您可能不喜欢静态,并且创建对象没有问题。在这种情况下,做这样的事情:

MyClass