2017-05-31 232 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