我以前认为Error:(15, 8) inferred type arguments [?1,?0] do not conform to method flatMap's type parameter bounds [KR,VR]
.flatMap(
Error:(16, 20) type mismatch;
found : org.apache.kafka.streams.kstream.KeyValueMapper[String,Option[org.minsait.streams.model.JsonMessage],Iterable[org.apache.kafka.streams.KeyValue[String,String]]]
required: org.apache.kafka.streams.kstream.KeyValueMapper[_ >: String, _ >: Option[org.minsait.streams.model.JsonMessage], _ <: Iterable[_ <: org.apache.kafka.streams.KeyValue[_ <: KR, _ <: VR]]]
(key, value) => toFormattedEvents(key, value)
和/proc/self
在bash终端中是相同的,但是现在我发现它们是不同的。
我知道/proc/$$
表示当前进程的pid,而$$
是当前正在运行的进程,它应该是bash终端。为什么它们不同?
/proc/self
答案 0 :(得分:2)
$$
是一个特殊的bash变量,已扩展为外壳的pid。
/proc/self
是指向进行呼叫的进程的/proc/
子目录的 real 符号链接。
当您执行ls /proc/$$
时,shell会将其扩展为ls /proc/pid-of-bash
,这就是您所看到的shell过程的内容。
但是,当您执行ls /proc/self
时,您会看到短暂的ls
流程的内容。
$$
不限于此用法,您可以编写echo $$
来查看bash pid;您可以用它杀死自己等等。