2017-05-31 114 views
0

enter image description here对象这是一类,我需要从一个对象调用它的方法。如何创建泛型类

public abstract class FileInputFormat<K, V> extends InputFormat<K, V> { 

    // ... 

    protected long computeSplitSize(long blockSize, long minSize, 
            long maxSize) { 
     return Math.max(minSize, Math.min(maxSize, blockSize)); 
    } 

    // ... 

} 

我尝试这样做:

FileInputFormat<K, V> test = new FileInputFormat<K, V>(); 

,但它显示的错误。

我该怎么办?

+0

这个问题不应该在Hadoop的标签 – ducanhng

回答

3

你要实例化一个通用类的对象,所以你必须在地方KV提供一些具体类型,例如:

FileInputFormat<Integer, String> test=new FileInputFormat<Integer, String>(); 
+0

我怎么能找到它的类型,HTTP://grepcode.com/file/repo1.maven.org/maven2 /com.ning/metrics.action/0.2.0/org/apache/hadoop/mapreduce/lib/input/FileInputFormat.java – mndn

+0

这取决于你的使用情况。 – syntagma

+0

我只需要使用它的方法,我使用<字符串,整数>,但它显示了一个错误.I添加图片的问题。 – mndn

0

在仿制药的情况下,你需要用一些类名替换K,V

在你的情况下,它可能是

FileInputFormat<Integer, String> test=new FileInputFormat<Integer, String>(); 


OR 



FileInputFormat<String,Integer> test=new FileInputFormat<String,Integer>(); 
+0

它显示了一个错误,我添加图片的问题, – mndn

+0

对不起,你这些问题的答案https://stackoverflow.com/questions/44341738/merge-time-and-reduce-time -are-0 – mndn