Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过实例调用静态方法的替代方法_Java_Static_Joptionpane - Fatal编程技术网

Java 通过实例调用静态方法的替代方法

Java 通过实例调用静态方法的替代方法,java,static,joptionpane,Java,Static,Joptionpane,我听说这是在低级趣味下做的。我的意思是它可以工作,但显然专业人士不会这样做,因为showMessageDialog是静态的。有更好的方法写这个吗?为什么要创建一个对象来简单地调用它的静态方法?没有理由。 JOptionPane.showmessagedialogy这永远不会完成;是您所需要的全部。可以调用静态方法,而无需引用实例: JOptionPane jop = new JOptionPane( ); jop.showMessageDialog(“This is never done”);

我听说这是在低级趣味下做的。我的意思是它可以工作,但显然专业人士不会这样做,因为showMessageDialog是静态的。有更好的方法写这个吗?

为什么要创建一个对象来简单地调用它的静态方法?没有理由。 JOptionPane.showmessagedialogy这永远不会完成;是您所需要的全部。

可以调用静态方法,而无需引用实例:

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");