2014-04-30 50 views
-3

我有一个类不是主要的,但扩展了JFrame,我想用它来执行主。我已经创造了它,并内置在构造函数中所需的一切,但我知道要运行的唯一方式是如何使用构造函数代码在java中执行类?

new AboutFrame(); 

但在Eclipse中,我得到一个警告“分配的对象是从未使用过。”虽然我相信它会起作用,但是有没有更好的方法可以解决这个问题呢?应该用于此的方法,例如运行它的类中的方法?因此,类'AboutFrame'扩展了JFrame,并且具有使其在构造函​​数中可见的所有设置,所以我想调用它来打开框架,但是我得到如上所述的警告。我知道它无论如何都能正常工作,但通常在出现警告时,还有更好的方法去做。 谢谢

+0

后的相关代码 –

+2

我想这消息只是一个警告信息,它应该工作如你所料,虽然你可能会注意到:你-or什么讲座的作者做的是鼓励,它很难测试。 –

+0

注意你所做的陈述。 “我有一个子类”。子类继承超类的接口(方法)。 – DwB

回答

3

所以我假设你有你的main()其中你有new Class()

  1. 您不应该在Java中已存在的类之后命名类。 Class已经是Java中的一个类的名称。
  2. 你没有对你的对象做任何事情。你应该做点什么。例如,调用一个方法等等。
  3. 如果你想调用一个方法而不创建你的类的对象,使其成为static。这样,您可以将其称为yourClassName.methodName(),并完全消除对象的需要。

但是,我确实不清楚你在这里试图达到什么目的。你到底想做什么? :)

+0

这个名字实际上并不是Class,我只是用它作为替代品,给出了一般的想法。至于对象,这个类是一个JFrame,并且我已经在构造函数中构建了它需要的所有组件,所以它不应该需要一个方法来构建,更正? – Trevor

+0

@Trevor编辑你的问题,包括模式的细节:)我还不清楚。你有自己的类来扩展'JFrame'? –

+0

我编辑了我的问题,希望现在更有意义。 – Trevor

0

相反匿名打电话的对象,将其分配给一个参考变量

Class instance = new Class(); 
+0

与此有关的事情是,因为它全部内置在构造函数中,所以它不需要引用。一个侧面说明,因为我没有使用任何方法,如果我添加一个参考,我会得到:“局部变量f的值没有被使用” – Trevor

+0

好点。我没有那样试过。 FWIW JDK命令行编译器不会抛出任何编译或运行时异常。我最近用同样的方法创建了一个GUI应用程序,它运行良好。 – NonSecwitter

0

如果这是你在做什么

MyClass myObject = new MyClass(); 

,别无其他,日食会抱怨myObject的是没用过。此警告通常对确定是否正在使用某个变量很有用。你的是一个简单的例子,你可以忽略这个警告或者根本不创建一个参考。刚:

new MyClass() 
相关问题