Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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_Class_Object_Reflection - Fatal编程技术网

Java 如何访问类的动态创建对象的方法和属性

Java 如何访问类的动态创建对象的方法和属性,java,class,object,reflection,Java,Class,Object,Reflection,我有以下课程: 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 : Re

我有以下课程:

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]);
        }


    }

}
到目前为止,我没有收到任何问题。但是如何访问创建的对象中可用的方法和属性


谢谢

您需要阅读有关反射的教程,例如检查

:

:

Class.getDeclaredMethod(字符串名称、类…参数类型)

我想你想问的是,如何让“obj”看起来像你所知道的那样

答案是投下它:

IntArrayManipulation obj = (IntArrayManipulation) Class.forName(className);
但是,我有点怀疑为什么要用这种方式通过反射创建对象。除非你有充分的理由,否则你应该:

IntArrayManipulation object = new IntArrayManipulation();
…我猜你可能也不是说所有这些方法都是静态的

Class.getDeclaredMethod(String name, Class<?>... parameterTypes)
IntArrayManipulation obj = (IntArrayManipulation) Class.forName(className);
IntArrayManipulation object = new IntArrayManipulation();