Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类可以是方法的参数吗?_Java_Class_Hadoop_Parameter Passing - Fatal编程技术网

Java 类可以是方法的参数吗?

Java 类可以是方法的参数吗?,java,class,hadoop,parameter-passing,Java,Class,Hadoop,Parameter Passing,几天以来,我一直在努力理解hadoop mapreduce程序。我看到了以下声明 conf.setInputFormat(TextInputFormat.class); 我不质疑这一声明的合法性,因为该计划运行时没有任何问题。有人能解释一下为什么TextInputFormat.class是输入而不是text input format类型的对象吗?我也可以对其他方法使用相同的约定吗?在什么情况下它会失败 这是setinputformat的签名 <http://hadoop.apache.o

几天以来,我一直在努力理解hadoop mapreduce程序。我看到了以下声明

conf.setInputFormat(TextInputFormat.class);
我不质疑这一声明的合法性,因为该计划运行时没有任何问题。有人能解释一下为什么TextInputFormat.class是输入而不是text input format类型的对象吗?我也可以对其他方法使用相同的约定吗?在什么情况下它会失败

这是setinputformat的签名

<http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/JobConf.html#setInputFormat(java.lang.Class)>

setInputFormat(Class<? extends InputFormat> theClass) 

Set the InputFormat implementation for the map-reduce job.


setInputFormat(ClassYes)您可以将该类作为参数传递。 下面是如何将类作为参数传递的简短示例:

public void foo(Class obj){
    Object ob = obj.newInstance();
}

是的,您可以将该类作为参数传递。 下面是如何将类作为参数传递的简短示例:

public void foo(Class obj){
    Object ob = obj.newInstance();
}

映射器和还原器需要知道什么样的格式。它们不需要实际的句柄。每个映射器/还原器都将使用
来实例化它们自己的反射。这是给某人一个锤子和告诉某人使用锤子之间的区别。您的特定示例是使用锤子的说明ammer.

签出一个应用程序的反射。签出一个应用程序的反射。是公共void foo(Someclass obj){}与公共void foo(Someclass.class)相同{}是公共void foo(Someclass obj){}与公共void foo(Someclass.class)相同{}