Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
Netbeans 7.2.1,Java反射,method.invoke(super,…)_Java_Reflection_Netbeans_Super - Fatal编程技术网

Netbeans 7.2.1,Java反射,method.invoke(super,…)

Netbeans 7.2.1,Java反射,method.invoke(super,…),java,reflection,netbeans,super,Java,Reflection,Netbeans,Super,为什么要调用 try { method.invoke(super, "abc", "def"); } catch (Exception e) { // ignore for now } 给了我这样一个错误: '.' expected 在Netbeans 7.2.1中?清理和构建后: Compiling 2 source files to C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlu

为什么要调用

try {
    method.invoke(super, "abc", "def");
}
catch (Exception e) {
    // ignore for now
}
给了我这样一个错误:

'.' expected
在Netbeans 7.2.1中?清理和构建后:

Compiling 2 source files to C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\build\web\WEB-INF\classes
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: '.' expected
                    method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ')' expected
                    method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ';' expected
                    method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: not a statement
                    method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ';' expected
                    method.invoke(super, "abc", "def");
5 errors
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\nbproject\build-impl.xml:851: The following error occurred while executing this line:
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\nbproject\build-impl.xml:284: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 3 seconds)

我相信您做得不对:仅供参考如何使用java反射调用方法的示例:

java.lang.reflect.Method method;

try {
  method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) {
  // ...
} catch (NoSuchMethodException e) {
  // ...
}

try {
    method.invoke(obj, arg1, arg2,...);
}
编辑:

正如@mavroscy所提到的,
super
是java中的一个关键词
super
是一个

尝试更改变量名

请参见此处如何使用
super
关键字

如果您想要,您必须使用
super.methodName()

替换为类的名称

Method m = <classInstance>.getClass().getSuperClass().getDeclaredMethod("ABC");
m.invoke(<classInstance>);
方法m=.getClass().getSuperClass().getDeclaredMethod(“ABC”);
m、 调用();

问题在于我对多态性的理解不好,嗯,这有点可怜,因为我认为“super”指的是超类的对象,“this”指的是当前对象——类似的东西

当然,只有一个对象从扩展类中实例化。
因此,我不得不将“super”替换为“this”。

编译失败于
ServletPlus.java
,第45Hi行,@Adrian Adamczyk您问了这个问题(您是如何绘制路径的,请帮助我)@Bashir我使用了很多texuredpolygon方法的逻辑中有错误。invoke,用法:method.invoke(this,“abc”,“def”);解决了我的问题。