1
我在閱讀JMH
示例,現在我在關於inheritance的部分。這裏是他們做了一句話:瞭解java編譯和繼承
因爲我們只編譯期間知道是什麼類型的層次結構,它是相同的編譯會話期間 纔有可能。也就是說,在 中混合擴展您的基準類後的子類 JMH 編譯將不起作用。
我還沒有想到這方面的編譯,所以這似乎不是很清楚。但我們可以使用Class::getSuperClass
。例如:
@Benchmark
public abstract class MyBenchmark{
public void mb(){
doSome();
}
public abstract doSome();
}
我認爲編譯這個類時,JHM使用註釋處理器進行基準生成。然後如果我們試圖編譯一個子類,說
public class MyConcreteBenchmark extends MyBenchmark {
@Override
public void doSome(){
//Do some
}
}
它不起作用,因爲註釋處理器沒有任何處理。
這是評論,而不是問題。 –
@MarkoTopolnik你是什麼意思?我只是被**弄糊塗了,我們在編譯期間只知道類型層次**。它應該是什麼意思? –
註釋處理器在編譯時運行,對嗎? –