kafkaconsumer使用反射的avro specifirecord泛型类型

1wnzp6jl  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(275)

赏金两天后到期。回答此问题可获得+50声望奖励。vishal pawar想引起更多的注意**这个问题。

我想初始化 KafkaConsumer 使用带有反射的类的泛型类型。这些类将通过 avro-tools 并将延伸 SpecificRecordBase 班级。我知道,我可以用通配符做类似的事情-

KafkaConsumer<? extends SpecificRecordBase, ? extends SpecificRecordBase> consumer = new KafkaConsumer<>(properties);

不过,我想找一些像-

Class keyClass = Class.forName("com.test.KeyClass");
Class valueClass = Class.forName("com.test.ValueClass");
KafkaConsumer<keyClass, valueClass> consumer = new KafkaConsumer<>(properties);

任何指点都将不胜感激。谢谢。

jjjwad0x

jjjwad0x1#

由于类型参数的存在只是为了方便程序员,在运行时它们将被删除,因此,通过反射加载它们是没有意义的。
但是,您可以将其转换为所需的类型,例如。

Consumer<KeyClass, ValueClass> consumer = new KafkaConsumer<>(properties);

相关问题