【问题标题】:Passing and using a Class type in a method in Java在 Java 中的方法中传递和使用 Class 类型
【发布时间】:2012-08-07 20:26:12
【问题描述】:

我有一个解析器方法,它将在完成时填充用户定义的集合类型。我正在尝试在我的抽象解析器类中抽象这个类。

这里是代码

    protected List<Collection> parseData(List<Data> data, Class<Collection> collectionType)
    {
        List<Collection> parsedData = new ArrayList<collectionType>();
        //Parse data
        return parsedData
    }

但是,我在列表实例化行上不断收到以下错误: collectionType 无法解析为类型, ArrayList 无法解析为类型

这是我第一次尝试这样的事情,我不确定出了什么问题。任何帮助将不胜感激。

【问题讨论】:

  • 我应该注意,我只想强调,Collection 不是 Java Collection 类,而是我定义的类的接口。
  • -1 用于命名你的班级Collection
  • 展示你的全班(带进口...)
  • Collection 可以是任何类型吗?不知道是什么类型的data怎么加进去?

标签: java class types methods parameter-passing


【解决方案1】:

您需要使用泛型方法。像这样。

C#:

    protected List<T> parseData<T>(List<Data> data, T collectionType)
    {
        List<T> parsedData = new List<T>();
        //Parse data
        return parsedData;
    }

JAVA:

protected <T> List<T> callFriend(List<Data> data, Class<T> collectionType) {
     List<T> parsedData = new ArrayList<T>();
        //Parse data
        return parsedData;
}

【讨论】:

  • 基于 Google,我的理解是这是针对 C# 的,我希望在 Java 中做到这一点
  • 对不起,你之前没有提到你需要Java。我已经添加了 Java 版本。
  • "java" 是标签之一.. :)
  • Bugari ,之前没有这个标签
  • 那是我的错,事后补充,没有意识到我错过了。这样就成功了,感谢您的帮助!
猜你喜欢
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多