【发布时间】:2014-05-17 04:53:48
【问题描述】:
我刚刚再次开始使用 Java 进行编码,我正在将一些代码从 C# 转换为 Java 用于一个小项目,以便再次开始使用 Java。 我的问题是如何指定我想要从泛型方法返回的实例类型。 在 C# 中,我会做这样的事情:
const int B = 1;
const int C = 2;
int classType = a given value
ClassB : ClassA
ClassC : ClassA
private ClassA CreateClone(ClassA classToBeCloned){
switch(classType){
case B:
return classToBeCloned.CreateClone<ClassB>();
case C:
return classToBeCloned.CreateClone<ClassC>();
}
return null;
}
如上所述,我可以根据变量 classType 检索 ClassA 的不同实现。 但是,在 Java 中我不能做同样的事情(或者至少 Netbeans 8.0 IDE 在做这件事时会发出错误信号)。基本上我无法告诉方法我想要返回什么类型(下面的调用是我在 java 中想要的):
classToBeCloned.CreateClone<Class*>();
Where * = B or C
那么我如何指定方法应该返回什么类型呢? (更像是方法内部的 T 应该是什么)
可能是散漫的,不是正确表达自己的专家,哈哈。 所有帮助表示赞赏!
【问题讨论】:
-
你没有抓住重点,可能是我的错误。 B 和 C 是整数常量,与我的问题无关。开关正常工作,我看不到如何在 Java 中执行 classToBeCloned.CreateClone
()。
标签: c# java generics type-conversion