我正在尝试读取传递给 jar 文件的参数,但我的疑问是 - 例如,是否有任何方法可以直接从子类读取父类变量的构造函数
KafkaSparkStreaming 是我的父类,我的 hbaseconnection 是我的子类,现在我的疑问是如何从父类获取主机名作为参数传递给我的子类 Hbaseconnection 我也不想将其设置为参数,也许整个理解都会被忽略引用和值(value)可能是错误的。
父类
public class KafkaSparkStreaming {
public String hostDetails;
public String zipCodePath;
public KafkaSparkStreaming(String[] args){
this.hostDetails = args[0];
this.zipCodePath = args[1];
}
public static void main(String[] args) throws Exception {
if(args.length<2) {
System.out.println("Arguments must be supplied ");
System.out.println("Usage: args[0] --> hostName args[1] --> path of zipcodecsv file");
System.exit(1);
}
KafkaSparkStreaming cdhHost = new KafkaSparkStreaming(args);
}
}
child 类(class)
public class HbaseConnection extends KafkaSparkStreaming implements
Serializable {
public static String host;
public HbaseConnection(String[] args) {
super(args);
}
private static final long serialVersionUID = 1L;
static Admin hbaseAdmin = null;
public static Admin getHbaseAdmin() throws IOException {
org.apache.hadoop.conf.Configuration conf =
(org.apache.hadoop.conf.Configuration) HBaseConfiguration.create();
conf.setInt("timeout", 12000000);
conf.set("hbase.master","cloudera-instance:60000");
conf.set("hbase.zookeeper.quorum", "cloudera-instance");
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("zookeeper.znode.parent", "/hbase");
Connection con = ConnectionFactory.createConnection(conf);
try {
if (hbaseAdmin == null)
//hbaseAdmin = new HBaseAdmin(conf);
hbaseAdmin = con.getAdmin();
} catch (Exception e) {
e.printStackTrace();
}
return hbaseAdmin;
}
最佳答案
由于 hostDetails
是 KafkaSparkStreaming
中的 public
属性,并且 HbaseConnection
扩展了 KafkaSparkStreaming
HbaseConnection
类型的对象可以从父类访问该属性。您可以直接在HbaseConnection
中使用它。
关于Java如何读取从其他公共(public)类方法传递给args[0]的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961828/