相关疑难解决方法(0)

简单的Getter/Setter评论

您使用什么约定来评论getter和setter?这是我一直想知道的事情,例如:

/**
 * (1a) what do you put here?
 * @param salary (1b) what do you put here?
 */
public void setSalary(float salary);

/*
 * (2a) what do you put here?
 * @return (2b)
 */
public float getSalary();
Run Code Online (Sandbox Code Playgroud)

我总是发现我为1a/b和2a/b编写完全相同的东西,例如1a)设置雇员的工资,1b)雇员的工资.这似乎是多余的.现在我可以看到更复杂的东西,你可以在(a)部分写更多内容,给出上下文,但对于大多数的getter/setter,那里的措辞几乎完全相同.

我只是好奇,如果对于简单的getter/setter,只需填写(a)部分或(b)部分即可.

你怎么看?

java getter setter comments javadoc

119
推荐指数
8
解决办法
6万
查看次数

SwingUtilities.invokeLater()为什么需要它?

为什么需要将GUI更新代码放入SwingUtilities.invokeLater()

为什么它不能被Swing本身内部照顾?为什么调用者必须关心swing如何处理UI更新?

java swing

44
推荐指数
4
解决办法
2万
查看次数

Java 7.x中的validateTree不起作用(在Java 6.x中很好)

我的java版本是:

Java Plug-in 10.3.1.255使用JRE版本1.7.0_03-b05 Java HotSpot(TM)客户端VM

所以当我有版本6.x一切都很好,升级后我得到了这个:

    Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: This function should be called while holding treeLock
        at java.awt.Component.checkTreeLock(Component.java:1196)
        at java.awt.Container.validateTree(Container.java:1682)
        at pl.recorder.ScenarioWindow.showUploadPanel(PlayerWindow.java:721)
        at pl.recorder.actions.UploadFilesAction.execute(DesignFilesAction.java:71)
        at pl.recorder.actions.EndTestAction.actionPerformed(EndTestAction.java:91)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6505)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
        at java.awt.Component.processEvent(Component.java:6270)
        at java.awt.Container.processEvent(Container.java:2229)
        at java.awt.Component.dispatchEventImpl(Component.java:4861)
        at java.awt.Container.dispatchEventImpl(Container.java:2287)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
        at java.awt.Container.dispatchEventImpl(Container.java:2273)
        at java.awt.Window.dispatchEventImpl(Window.java:2713)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
        at java.awt.EventQueue.access$000(EventQueue.java:101)
        at java.awt.EventQueue$3.run(EventQueue.java:666)
        at java.awt.EventQueue$3.run(EventQueue.java:664)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at …

java swing java-6 java-7

7
推荐指数
2
解决办法
1万
查看次数

System.exit在Linux上不是线程安全的吗?

我刚刚从Oracle JDK 1.6切换到Open JDK 1.7.0_03,并且在退出时遇到了相当显着的死锁:

java.lang.Thread.State: WAITING (on object monitor)
 at java.lang.Object.wait(Native Method)
 at java.lang.Thread.join(Thread.java:1258)
 - locked <0x8608dda0> (a sun.awt.X11.XToolkit$1$1)
 at java.lang.Thread.join(Thread.java:1332)
 at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
 at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
 at java.lang.Shutdown.runHooks(Shutdown.java:123)
 at java.lang.Shutdown.sequence(Shutdown.java:167)
 at java.lang.Shutdown.exit(Shutdown.java:212)
 - locked <0x8603df28> (a java.lang.Class for java.lang.Shutdown)
 at java.lang.Runtime.exit(Runtime.java:107)
 at java.lang.System.exit(System.java:960)
Run Code Online (Sandbox Code Playgroud)

您似乎必须从AWT事件队列中调用System.exit.这是真的吗?Sun docs Runtime.exit中没有线程要求的文档

我遇到了其他令人惊讶的情况,只有在Linux上才能获得AWT树锁,但是这个需要蛋糕.这是一个错误,还是我错过了文档中的内容?

java linux x11 openjdk awt

6
推荐指数
1
解决办法
1105
查看次数

标签 统计

java ×4

swing ×2

awt ×1

comments ×1

getter ×1

java-6 ×1

java-7 ×1

javadoc ×1

linux ×1

openjdk ×1

setter ×1

x11 ×1