使用hbase-client v.1.1.2。
HTableDescriptor
API提供了2个公共构造函数:
public HTableDescriptor(final TableName name) {...
...
public HTableDescriptor(final HTableDescriptor desc) {...
用于更改表名的2个弃用方法:
@Deprecated
public HTableDescriptor setName(byte[] name) {
setName(TableName.valueOf(name));
return this;
}
@Deprecated
public HTableDescriptor setName(TableName name) {
this.name = name;
setMetaFlags(this.name);
return this;
}
没有关于用户应该做什么的评论。
因此,要克隆HTableDescriptor
,选项是(a)使用第一个ctor并手动复制所有字段或(b)使用第二个ctor并使用不推荐使用的方法来更改表名。 / p>
建议的方法是什么?为什么API似乎不鼓励直接更改名称,除非通过ctor?
答案 0 :(得分:0)
看来你正在寻找this:
/**
* Construct a table descriptor by cloning the descriptor passed as a parameter
* but using a different table name.
* <p>
* Makes a deep copy of the supplied descriptor.
* Can make a modifiable descriptor from an UnmodifyableHTableDescriptor.
* @param name Table name.
* @param desc The descriptor.
*/
public HTableDescriptor(final TableName name, final HTableDescriptor desc) {