gpt4 book ai didi

java - Java中泛型这 block 怎么理解?

转载 作者:可可西里 更新时间:2023-11-01 17:01:35 25 4
gpt4 key购买 nike

这是 Hadoop 在线教程 (https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html) 中的示例代码

public class WordCount {
public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
// Something here
}
}

方括号中有<LongWritable, Text, Text, IntWritable>Text的两次出现让我困惑。

我们怎么知道哪个Text它在实际代码中指的是因为其中有两个具有相同的名称?例如当我们使用 private Text word = new Text();

同一个片段中类似的代码是public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> .

最佳答案

为了知道哪种类型指的是什么,您需要查看 Mapper 本身的文档/实现,您可以找到 here .泛型在内部称为 K1V1K2V2,并在整个类(class)中用于各种场合。因此,无论什么时候将 K1 作为参数(或为此返回 K1),它指的是您“插入”的第一种类型。它 基本上(将继承和诸如此类的高级主题放在一边)只是一种简单的替换形式。

顺便说一下:每个(好的)IDE 都应该帮助您解决这些问题并自动推断您正在处理的正确类型。

关于java - Java中泛型这 block 怎么理解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23459315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com