Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想访问使用字符串访问的类的方法_Java - Fatal编程技术网

Java 我想访问使用字符串访问的类的方法

Java 我想访问使用字符串访问的类的方法,java,Java,这是我的班级: Class.forName(gameGrid.getGameGridArray().get(0)[0]).newInstance(); “newInstance()”方法为我带来了构造函数。但是我不想访问构造函数 我想调用这个类的readText()方法。 有办法吗 如果要调用方法,则需要该类的对象实例。 通过反射,您可以访问要调用的方法: public class D { public D() { } public void readText() {

这是我的班级:

Class.forName(gameGrid.getGameGridArray().get(0)[0]).newInstance();
“newInstance()”方法为我带来了构造函数。但是我不想访问构造函数

我想调用这个类的readText()方法。
有办法吗

如果要调用方法,则需要该类的对象实例。 通过反射,您可以访问要调用的方法:

public class D {
   public D() {

}
   public void readText() {
      System.out.println("Yes");
} }

如果要调用方法,则需要该类的对象实例。 通过反射,您可以访问要调用的方法:

public class D {
   public D() {

}
   public void readText() {
      System.out.println("Yes");
} }

可能
YourClassName cls=xxxxx.newInstance();cls.specificMethod()
?您想做什么?反射地调用实例方法,还是静态方法?所谓“访问”,是指调用吗?@tgdavies是的,我想调用这个类的方法。那么你需要它的实例,不是吗?一旦你有了一个实例,你调用
getMethod
来获得一个方法,然后用这个实例调用它;cls.specificMethod()?您想做什么?反射地调用实例方法,还是静态方法?所谓“访问”,是指调用吗?@tgdavies是的,我想调用这个类的方法。那么你需要它的实例,不是吗?一旦你有了一个实例,你调用
getMethod
来获得一个方法,然后用该实例调用它。“objectInstance”到底是什么意思?如果方法是静态的,它可以被调用为null,这可能对包含在答案中很有用…谢谢它工作了,但是,如果方法不是静态的,我应该如何调用它?@MertYanık没有反射,调用非静态方法时,它将是
objectobjectinstance=newyourclass();a、 nameOfMethod()。这里的
objectInstance
与reflect版本相同。“objectInstance”的确切含义是什么?如果方法是静态的,可以调用null,这可能有助于包含在答案中…感谢它工作了,但是,如果方法不是静态的,我应该如何调用它?@MertYanık无反射,当调用非静态方法时,它将是
objectobjectinstance=newyourclass();a、 nameOfMethod()。此处的
objectInstance
与反射版本相同。
Method method = aClass.getDeclaredMethod("nameOfMethod");
method.invoke(null);