Java 通过实例调用静态方法的替代方法
我听说这是在低级趣味下做的。我的意思是它可以工作,但显然专业人士不会这样做,因为showMessageDialog是静态的。有更好的方法写这个吗?为什么要创建一个对象来简单地调用它的静态方法?没有理由。 JOptionPane.showmessagedialogy这永远不会完成;是您所需要的全部。可以调用静态方法,而无需引用实例:Java 通过实例调用静态方法的替代方法,java,static,joptionpane,Java,Static,Joptionpane,我听说这是在低级趣味下做的。我的意思是它可以工作,但显然专业人士不会这样做,因为showMessageDialog是静态的。有更好的方法写这个吗?为什么要创建一个对象来简单地调用它的静态方法?没有理由。 JOptionPane.showmessagedialogy这永远不会完成;是您所需要的全部。可以调用静态方法,而无需引用实例: JOptionPane jop = new JOptionPane( ); jop.showMessageDialog(“This is never done”);
JOptionPane jop = new JOptionPane( );
jop.showMessageDialog(“This is never done”);
事实上,这几行:
JOptionPane.showMessageDialog("This is never done");
将在编译时转换为:
JOptionPane jop = new JOptionPane();
jop.showMessageDialog("This is never done");
如果该方法是静态的,那么就这样调用它。ClassName.staticMethod=>JOptionPane.showMessageDialog…任何好的IDE都会告诉您,不需要pro.btw,它的品味不佳的原因是它令人困惑:它看起来像是在实例上调用了该方法,而实际上它不是。一个经典的例子:线程t=getSomeThread;t、 睡眠1000;看起来它让t线睡了一会儿,对吗?不!sleep是一种静态方法,它导致当前线程休眠。
JOptionPane jop = new JOptionPane();
JOptionPane.showMessageDialog("This is never done");