【问题标题】:Set the type for generic method C# to Java将泛型方法 C# 的类型设置为 Java
【发布时间】: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


【解决方案1】:

您只需要在 Java 的不同位置找到通用信息:

return classToBeCloned.<ClassB>CreateClone();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多