Kafka adminclient API - get(TopicPartition) 对于 Map<TopicPartition,Object 类型是不明确的>



这是我的代码:

    Properties props2 = new Properties();
    props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
    AdminClient adminClient = AdminClient.create(props);
    scala.collection.immutable.Map<TopicPartition,Object> offsets = 
    adminClient.listGroupOffsets("foo");
    Option<Object> offset = offsets.get(new TopicPartition("test", 0));
    System.out.println(Long.parseLong(offset.get().toString())); 

我正在使用kafka_2.11_0.10.2.1kafka-clients_0.10.2.1. offsets.get()有一个编译问题:The method get(TopicPartition) is ambiguous for the type Map<TopicPartition,Object> 。我应该如何解决?

这可能不是最好的方法,但它肯定是一种解决方法。

/* import statements */
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.common.TopicPartition;
import java.util.Map;
import java.util.Properties;
import kafka.admin.AdminClient;
import scala.collection.JavaConverters;
/* code snippet */
Properties props = new Properties();
props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
AdminClient adminClient = AdminClient.create(props);
scala.collection.immutable.Map<TopicPartition, Object> offsets =
adminClient.listGroupOffsets("foo");    
Map<TopicPartition, Object> javaOffsets =
JavaConverters.mapAsJavaMapConverter(offsets).asJava();
Object key = javaOffsets.get(new TopicPartition("my-topic", 0));
System.out.println(Long.parseLong(key.toString()));

最新更新