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条经验 获得超10个赞
查看 Java 规范8.4.3。方法修饰符说:
MethodModifier: (one of) Annotation public protected private abstract static final synchronized native strictfp
这些必须在返回类型之前,返回类型是最后一个。修饰符顺序并不重要,因为它们尊重返回类型作为最后一个。这就是为什么public synchronized void
有效。
喵喔喔
TA贡献1735条经验 获得超5个赞
你要返回什么?你是返回同步,还是返回无效?由于 synchronized 不是您可以返回的东西,因此它必须是无效的。你看,返回类型必须总是紧跟在函数名之前。
添加回答
举报
0/150
提交
取消