我有以下课程:
package anto.com.basic;
public class IntArrayManipulation {
public static void changeMe(int valueArray[]){
valueArray[4]=5;
for (int i = 0; i < valueArray.length; i++) {
System.out.println(" in method : Ref : "+i+ "Value : "+valueArray[i]);
}
}
public static void main(String[] args) {
int value[] = new int[5];
value[0] = 1;
value[1] = 2;
value[2] = 3;
value[3] = 4;
for (int i = 0; i < value.length; i++) {
System.out.println(" main Ref : "+i+ "Value : "+value[i]);
}
changeMe(value);
for (int i = 0; i < value.length; i++) {
System.out.println(" in main : after changeMe called Ref : "+i+ "Value : "+value[i]);
}
}
}
我创建了Object,如下所示:
package anto.com.basic;
public class CreateObject {
public static void main(String[] args) throws ClassNotFoundException {
String className = "anto.com.basic.IntArrayManipulation";
Object obj = Class.forName(className);
}
}
到目前为止,我没有遇到任何问题。但是如何访问创建的对象中可用的方法和属性?
由于
答案 0 :(得分:1)
您需要阅读有关反思的教程,例如检查this。
Class.getDeclaredField(String name)
Class.getDeclaredMethod(String name, Class<?>... parameterTypes)
答案 1 :(得分:0)
我认为您的意思是如何使“obj”看起来像您知道的IntArrayManipulation。
答案就是施展它:
IntArrayManipulation obj = (IntArrayManipulation) Class.forName(className);
但是,我有点怀疑你为什么要以这种方式通过反射来创建对象。除非你有充分的理由,否则你应该这样做:
IntArrayManipulation object = new IntArrayManipulation();
......我怀疑你可能并不是说所有这些方法都是静态的。