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

Java 是否基于类类型创建类实例?

Java 是否基于类类型创建类实例?,java,java-7,Java,Java 7,我正在使用JAVA7。我有课下作业 public class SomeClass<B extends Base, L extends Last>{ Class<L> last; Class<B> base; public SomeClass(Class<L> last, Class<B> base){ this.last=last; this.base=base; } } 公共类S

我正在使用JAVA7。我有课下作业

public class SomeClass<B extends Base, L extends Last>{
   Class<L> last;
   Class<B> base;

   public SomeClass(Class<L> last, Class<B> base){
       this.last=last;
       this.base=base;
   }
}
公共类SomeClass{
最后一节课;
阶级基础;
公共类(最后一个类,基本类){
this.last=last;
这个。base=base;
}
}
这里我需要创建一个方法,该方法将接受类类型并创建其实例并返回。我该怎么做

public returnclassinstance createInstance(类类)

我将通过传递last/base来调用此方法。此方法必须创建所传递类类型的实例并返回相同的实例。可能吗


谢谢

要基于java
Class
type创建新实例,您应该使用如下内容:

public <T> T createInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException {
        return clazz.newInstance();
    }
运行此代码后,应获得以下输出:

I'm in consturctor with one String arg: ARG

但是请注意这段代码有多难看——在我看来,使用Java中的反射来创建这样的对象是最后一种选择(如果我们没有任何其他解决方案)。

除非
Base
last
具有
is-A
关系,否则这是不可能的。Rohit,感谢您的评论。那么我需要删除泛型吗?我不明白这里需要泛型类。我宁愿让那个方法通用。罗希特,我不明白。。你能提供你的答案吗?阿雷克,谢谢你的回答。我需要在实例化时将值传递给构造函数。我该怎么做?@user755806-我建议你相应地编辑你的问题,这样它就包含了你需要的所有信息need@user755806:正如user503413所说——您最好指定您的需求——我的答案是通过Java反射实现对象创建的唯一方法。有很多可能产生错误的地方,所以正如我在编辑后的答案中所说的,对我来说使用反射永远是最后一个选择。
I'm in consturctor with one String arg: ARG