使用 getter/setter 方法将 Java 对象包装/解包到可写对象是个好主意吗?



更具体地说,在hadoop的MapReduce程序中,如果你使用的是自定义类,那么该类需要实现Writable接口。 并且它的所有成员都需要是可写的,例如

class WeatherData implements Writable{
     Text stationId;
     LongWritable timestamp;
     IntWritable temperature;
}

但是由于 Text、LongWwritetable、IntWriable 等类是基元数据类型的可写包装类。您不能对它们进行常规操作,例如算术运算或字符串操作等。

拥有吸气器设置器方法,例如

 public String getStationId(){
     return this.stationId.toString();
 }
 public void setStationId(String stationID){
     this.stationId = new Text(stationID);
 }

这将是有益的,因为外部世界可以将这些成员视为常规 Java 类,但在内部它们将存储为可写类的对象。

我的问题是这是否是良好的编码实践。 拥有这样的吸气/设置方法有哪些潜在的陷阱?

这对我来说似乎不是一个好习惯。查看可写接口文档。您真正需要做的就是实现readFields()write()方法。(您的类成员本身不需要是可写的 - 请参阅文档中的示例。

相关内容

  • 没有找到相关文章

最新更新