Hash 谷歌番石榴散列
我对番石榴漏斗有一些问题,我读了这篇文章和其他文章,但我不知道当我的类不仅包含基本类型时如何使用漏斗Hash 谷歌番石榴散列,hash,guava,Hash,Guava,我对番石榴漏斗有一些问题,我读了这篇文章和其他文章,但我不知道当我的类不仅包含基本类型时如何使用漏斗 Funnel<Person> personFunnel = new Funnel<Person>() { @Override public void funnel(Person person, PrimitiveSink into) { into .putInt(person.id) .putString(person.firstN
Funnel<Person> personFunnel = new Funnel<Person>() {
@Override
public void funnel(Person person, PrimitiveSink into) {
into
.putInt(person.id)
.putString(person.firstName, Charsets.UTF_8)
.putString(person.lastName, Charsets.UTF_8)
.putInt(birthYear)
//.putObject(myObject,myObjectFunnel);I want to do something like this
}
};
PrimitiveSink类没有putObject方法,只有Hasher类有它。
我可以将myObject转换为字节数组并使用putBytes方法,但可能有人知道更好的方法。你是对的:目前,仅使用API链接方法是不可能的 但是我看到你有一个
myObjectFunnel
。那么为什么不使用它呢
那么:
Funnel<Person> personFunnel = new Funnel<Person>() {
@Override
public void funnel(Person person, PrimitiveSink into) {
into
.putInt(person.id)
.putString(person.firstName, Charsets.UTF_8)
.putString(person.lastName, Charsets.UTF_8)
.putInt(birthYear);
myObjectFunnel.funnel(myObject, into);
}
};
漏斗人漏斗=新漏斗(){
@凌驾
公共空白漏斗(人、原始人、沉入){
进入
.putInt(person.id)
.putString(person.firstName,Charsets.UTF_8)
.putString(person.lastName,Charsets.UTF_8)
普廷先生(生日);
漏斗(myObject,into);
}
};
Funnel<Person> personFunnel = new Funnel<Person>() {
@Override
public void funnel(Person person, PrimitiveSink into) {
into
.putInt(person.id)
.putString(person.firstName, Charsets.UTF_8)
.putString(person.lastName, Charsets.UTF_8)
.putInt(birthYear);
myObjectFunnel.funnel(myObject, into);
}
};