当前位置: 首页 > 知识库问答 >
问题:

我可以在一行上施放和使用对象吗?

帅博远
2023-03-14

通常,我会这样做:

public showDialog(final Object caller) {
    JDialog dialog = [ ... ]

    if (caller instanceof Window) {
        Window w = (Window) caller;
        dialog.setLocationRelativeTo(w);
        w.dispose();
    }
}

然而,有没有一种简单的方法可以做到这一点?基本上,类似于:<代码>(窗口)父级。dispose() 还是我总是需要创建一个窗口来存储我的演员?

共有3个答案

雍骏俊
2023-03-14

你可以写

if (caller instanceof Window) {
    dialog.setLocationRelativeTo((Window) caller);
    ((Window) caller).dispose();
}

我建议你做些更清楚的事情,不要太担心行数。

费辰阳
2023-03-14

是的,只需将演员阵容用另一组括号括起来:

((Window) parent).dispose();

虽然不是特别漂亮。

还是我总是需要创建一个窗口来存储我的石膏?

请记住,您不是在创建一个窗口,而是在创建对现有窗口的引用(这非常便宜)。

凤衡
2023-03-14

是:

dialog.setLocationRelativeTo((Window) caller);

如果要对强制转换的值调用方法,必须将其括在一组括号中:

((Window) caller).dispose();

就我个人而言,如果这是我唯一要做的事情,我才会那样做。如果有两个或多个语句需要cast的值,那么我会像在原始代码中那样使用显式变量。

 类似资料:
  • 可以用JAVA创建一个对象,然后立即在同一行上使用setter吗? 如下所示:。设置某物(“字符串”); 我如何才能正确地执行此操作,eclipse总是说: 类型不匹配:无法从空转换到类类型

  • 我们可以使用页面对象执行滚动吗? 实际上,我需要根据元素滚动网页(向上/向下)。如何使用页面对象执行。 我使用Selenium web drive来启动浏览器,并使用Page对象来自动化web页面。 有什么建议吗???

  • 根据Mozilla的说法,iOS上没有任何浏览器支持跨源开放策略,这是启用ShareDarrayBuffer的安全要求之一。这是否意味着我不能将SharedArrayBuffer用于iOS平台上的任何Web应用程序?

  • 本文向大家介绍我可以使用HTML5一次播放同一声音吗?,包括了我可以使用HTML5一次播放同一声音吗?的使用技巧和注意事项,需要的朋友参考一下 要同时播放声音多次,您需要克隆<audio>元素。这适用于谷歌浏览器- 该cloneNode是有用返回节点的副本,并在再次运行声音帮助。

  • 问题内容: 我可以在同一输出流上同时使用PrintWriter和BufferedOutputStream吗? 情况是这样的: 我有一个SSLSocket程序,我希望能够在不同的时间点轻松地在套接字上同时传输字符串和字节[],而不必将byte []转换为字符串等,但是,PrintWriter仅允许我传输字符串和BufferedOutputStream只允许我传输字节。 问题答案: PrintWrit

  • 问题内容: 这是我现在正在做的事情: 将文件写入磁盘,然后立即删除它们似乎是应该避免的系统额外工作。我可以使用Python将内存中的对象上传到FTP吗? 问题答案: 由于使用鸭式输入,因此文件对象(在您的代码中)仅需要支持与一起使用的调用。当遇到这样的问题时,我转到源代码,在本例中为lib / python2.6 / ftplib.py: 如前所述,它只需要一个类似文件的对象,实际上它甚至不需要,