Java 当使用子类的实例时,从父类访问变量似乎不起作用
我试图将Java中的程序移植到Scala,但是,我遇到了一个错误 我有一行代码可以访问DistributedConfig.BOOTSTRAP\u SERVERS\u CONFIG 在Java中,这很好用 但是,在Scala中,这会产生错误Java 当使用子类的实例时,从父类访问变量似乎不起作用,java,scala,apache-kafka,Java,Scala,Apache Kafka,我试图将Java中的程序移植到Scala,但是,我遇到了一个错误 我有一行代码可以访问DistributedConfig.BOOTSTRAP\u SERVERS\u CONFIG 在Java中,这很好用 但是,在Scala中,这会产生错误 value BOOTSTRAP\u SERVERS\u CONFIG不是org.apache.kafka.connect.runtime.distributed.DistributedConfig的成员 查看DistributedConfig类,BOOTSTR
value BOOTSTRAP\u SERVERS\u CONFIG不是org.apache.kafka.connect.runtime.distributed.DistributedConfig的成员
查看
DistributedConfig
类,BOOTSTRAP\u SERVERS\u CONFIG
实际上不是在类中定义的,而是在WorkerConfig
中定义的,它扩展了DistributedConfig
。我已经检查过了,变量是公共的public static final String BOOTSTRAP\u SERVERS\u CONFIG
是一个精确的定义。Java“伪造”静态成员的继承(当您编写DistributedConfig.BOOTSTRAP\u SERVERS\u CONFIG
时,Java编译器将其转换为WorkerConfig.BOOTSTRAP\u SERVERS\u CONFIG
),Scala没有这样做,因为它不适合Scala的静态方法(使用伴生对象)。因此,在Scala中,您只能使用WorkerConfig.BOOTSTRAP\u SERVER\u CONFIG
如果将其更改为WorkerConfig.BOOTSTRAP\u SERVER\u CONFIG
?哎呀,对不起,到处都应该是BOOTSTRAP\u SERVER\u CONFIG。只需重新检查代码,没有拼写错误,我只是在帖子中拼错了。永远不要重新键入代码或错误消息——总是复制/粘贴。