Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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_Oop - Fatal编程技术网

Java 将物体扔到地板上

Java 将物体扔到地板上,java,oop,Java,Oop,我正在创建一个单元格编辑器,但我已经在其他代码中看到了这一点。我正在创建一个对象,然后像这样将其扔到地板上: ButtonCellEditor buttonColumn=新的ButtonCellEditortable,2 此类获取表并为其设置TableColumnModel和自定义单元渲染器。然后,该方法结束,我不再引用buttonColumn对象 那么,做上述工作和做同样有效的工作之间有区别吗? 新按钮可调,2个 这样做有什么问题吗?创建ButtonCellEditor的任何一种方法都没有问题

我正在创建一个单元格编辑器,但我已经在其他代码中看到了这一点。我正在创建一个对象,然后像这样将其扔到地板上: ButtonCellEditor buttonColumn=新的ButtonCellEditortable,2

此类获取表并为其设置TableColumnModel和自定义单元渲染器。然后,该方法结束,我不再引用buttonColumn对象

那么,做上述工作和做同样有效的工作之间有区别吗? 新按钮可调,2个


这样做有什么问题吗?

创建ButtonCellEditor的任何一种方法都没有问题。但是,如果您以后想要引用该对象,那么使用方法2是无法做到的。对于方法1,您至少可以说buttonColumn.method.

据我所知,没有明显的区别


也没什么错-如果唯一的原因真的是为了得到构建对象的副作用,那么我更倾向于使用较短的形式,因为构建对象本身并不一定是一个很好的API设计,但这在这里并不重要。

它们是相同的,但关于为什么要这样做的注释可能是正确的。否则,可能会有人来删除它,认为这是一个没有调查的禁止操作

你也可以更清楚地解释和打电话


table.getColumn2.setCellEditornew ButtonColleditor

这两种情况之间没有真正的区别。在第二种情况下,将创建一个通常被垃圾收集的匿名变量。第二种情况也可以节省一些打字时间,并且更具可读性。如果您选择第一个版本,读者可能希望在创建的对象上找到引用,如果他没有找到引用,读者可能会感到惊讶


在任何情况下,静态方法都可能更适合这种情况。

代码中不应该有未使用的变量,这使得代码不那么清晰。此外,构造函数的名称表示用于初始化对象的方法,但在您的情况下,这并没有完成

我建议您改用静态方法:


我能想到的唯一一种情况是,构造函数需要参数来初始化自身,然后在以后执行一些操作,但不需要在内部执行操作,这与您的操作不同。

但是,在这种情况下,新对象可能不适合包含传入的变量。CellEditor不应将JTable作为成员。
ButtonCellEditor.niceNameHere(table, 2);