当前位置: 代码迷 >> J2SE >> 关于类之间参数传递的有关问题 初学者
  详细解决方案

关于类之间参数传递的有关问题 初学者

热度:514   发布时间:2016-04-24 12:19:30.0
关于类之间参数传递的问题 菜鸟请教大家
我有两个类 

第一个类里面有两个Sphere结构的参数 这两个参数将要传到第二个类里面去做运算

第一个类用class.forName和newInstance 来自动创建第二个类的实例 然后调用第二个类里面的processFrame方法

Java code
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这三个参数 第二个类 是该怎样获得这些参数呢?


Java code
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 不是很厉害 谢谢大家



------解决方案--------------------
写错了
Java code
Class class = Class.forName(submissionName);Constructor[] cons = class.getDeclaredConstructors();if(cons[0].getParameterTypes().length>0){    student = (Submission)cons[0].newInstance(new Object[]{new Integer(100),new Integer(200)});}
------解决方案--------------------
探讨

Submission student =
(Submission)Class.forName(submissionName).newInstance();

干嘛要这么来实例化一个类呢?可以把第二个类写个带x、y、z的构造函数,最后在第一个类中直接new就可以了。搞那么复杂干嘛?

------解决方案--------------------
newInstance()只是生成实例
传参数是在调用方法int[] studentResult = student.processFrame(x,y,z);
的时候传递进去的,你不用管,写好processFrame里面的逻辑就行了
  相关解决方案