【发布时间】:2014-01-16 21:20:56
【问题描述】:
Icon bug = new ImageIcon( getClass().getResource( "bug1.png" ) );
ImageIcon bug = new ImageIcon( getClass().getResource( "bug1.png" ) );
这两者有什么区别?我的书总是使用第一行中的方式来声明ImageIcon,但如果更具体地说,它是ImageIcon,那么声明第二种方式不是更好吗?
【问题讨论】:
-
第一种方式告诉任何查看您的代码的人您将只使用来自
Icon类的方法 - 也就是说,这个Icon恰好是ImageIcon的事实是与代码无关。这是可维护性的福音。这也意味着您可以将方法重构为更广泛有用的方法 - 传入Icon而不是ImageIcon。 -
Icon是一个接口;ImageIcon是实现该接口的类。这是另一个 SO 问题,它解决了为什么要声明一个变量以具有接口类型而不是具体类型的问题:stackoverflow.com/questions/3768869/…
标签: java swing icons awt imageicon