我有两个类 第一个类里面有两个Sphere结构的参数 这两个参数将要传到第二个类里面去做运算第一个类用class.forName和newInstance 来自动创建第二个类的实例 然后调用第二个类里面的processFrame方法
class TestFramework { .......... main()
private static Sphere[] spheres;
private static Sphere[] spheresBackup; String submissionName = args[0];
Submission student =
(Submission)Class.forName(submissionName).newInstance(); .......... int[] studentResult = student.processFrame(x,y,z);
第二个类需要我自己写 因为第二个类需要用到x, y, z这三个参数 但是在Class.forName里面的newInstance里面没有传入x,y和z这三个参数 第二个类 是该怎样获得这些参数呢?interface Submission {
public int[] processFrame (double x,double y,double z) throws Exception;
}class mySubmission implements Submission {
//这里的构造方法应该怎样写才能获得TestFramework这个类的参数????
public int[] processFrame( final double x,final double y,final double z) throws Exception { }
}请大家尽量给一些代码 我刚开始学java 不是很厉害 谢谢大家
class TestFramework { .......... main()
private static Sphere[] spheres;
private static Sphere[] spheresBackup; String submissionName = args[0];
Submission student =
(Submission)Class.forName(submissionName).newInstance(); .......... int[] studentResult = student.processFrame(x,y,z);
第二个类需要我自己写 因为第二个类需要用到x, y, z这三个参数 但是在Class.forName里面的newInstance里面没有传入x,y和z这三个参数 第二个类 是该怎样获得这些参数呢?interface Submission {
public int[] processFrame (double x,double y,double z) throws Exception;
}class mySubmission implements Submission {
//这里的构造方法应该怎样写才能获得TestFramework这个类的参数????
public int[] processFrame( final double x,final double y,final double z) throws Exception { }
}请大家尽量给一些代码 我刚开始学java 不是很厉害 谢谢大家
(Submission)Class.forName(submissionName).newInstance();干嘛要这么来实例化一个类呢?可以把第二个类写个带x、y、z的构造函数,最后在第一个类中直接new就可以了。搞那么复杂干嘛?
(Submission)Class.forName(submissionName).newInstance(new Object[]{new Integer(100),new Integer(200)});
Constructor[] cons = class.getDeclaredConstructors();
if(cons[0].getParameterTypes().length>0){
student = (Submission)cons[0].newInstance(new Object[]{new Integer(100),new Integer(200)});}
你好 调用无参的构造方法 在不改变本身TestFramework这个类的情况下有办法初始化吗?可不可以说的具体一些
谢谢你的代码 但是那个类我是不能乱改的 老师在他的机器上用那个类才测试我们所写的程序的 所以我们只能写class mySubmission implements Submission 这个类 有别的办法吗?
Submission student = (Submission)Class.forName(submissionName).newInstance();
//这里的构造方法应该怎样写才能获得TestFramework这个类的参数????
public int[] processFrame( final double x,final double y,final double z) throws Exception { }
}为什么要在构造方法里得到x,y,z呢?看看有能不能不再构造函数里面取这些值
public int a, b;
public Test(int a, int b) {
this.a = a;
this.b = b;
};
}Constructor<Test> c = Test.class.getDeclaredConstructor(int.class, int.class);
Test test = c.newInstance(1, 2);
System.out.println(test.a + " " + test.b);举个例子~
这些值是在main函数里随机生成的 不知道别的class里面 还可以怎样调用代码如下 for (int frame=0 ; frame<reps ; frame++) {
double x = ran.nextDouble()*10000;
double y = ran.nextDouble()*10000;
double z = ran.nextDouble()*10000;
}
public int[] processFrame(double x,double y,double z) throws Exception { }{}里面的逻辑就行,主类在int[] studentResult = student.processFrame(x,y,z);
的时候自然会调用到的
这样啊 是不是x y跟z自动会传递到我的函数里面 我不用管的 我以为newInstance()不传入参数 我就没法用那个x y跟z了呢
传参数是在调用方法int[] studentResult = student.processFrame(x,y,z);
的时候传递进去的,你不用管,写好processFrame里面的逻辑就行了
好的 谢谢你 我刚开始学java 所以对基本的概念理解的不是很清楚 偏偏老师的作业很难