import java.util.*;public class Deadlock extends Thread{ private String name; public static void main(String[] args) { } public class MyObject{ public void synchronized foo(String name) { //throws error saying 'Syntax error on token "void", volatile expected' } } }但是,如果,public void synchronized改為 public synchronized void,一切都很好。這是為什么?
2 回答

慕哥6287543
TA貢獻1831條經(jīng)驗 獲得超10個贊
查看 Java 規(guī)范8.4.3。方法修飾符說:
MethodModifier: (one of) Annotation public protected private abstract static final synchronized native strictfp
這些必須在返回類型之前,返回類型是最后一個。修飾符順序并不重要,因為它們尊重返回類型作為最后一個。這就是為什么public synchronized void
有效。

喵喔喔
TA貢獻1735條經(jīng)驗 獲得超5個贊
你要返回什么?你是返回同步,還是返回無效?由于 synchronized 不是您可以返回的東西,因此它必須是無效的。你看,返回類型必須總是緊跟在函數(shù)名之前。
添加回答
舉報
0/150
提交
取消