假设你有一个抛出一些异常A的单例。getInstance()
进一步假设A在整个程序中到处都在使用它,虽然A.getInstance().doSomethingUseful()很好,但很多代码都从Constants接口继承,我想声明:
A a = A.getInstance()在Constants,允许每个人都Constants可以访问a.
但是,正如预期的那样,Java抱怨方法抛出异常,因此不能在接口中声明。
有解决方法吗?
只需将已检查的异常转换为未检查的异常
static A getInstanceA2() throws Error
{
try
{ return A.getInstance(); }
catch(Exception e)
{ throw new Error(e); }
}
interface Constants
{
A a = getInstanceA2();
}
如果getInstane()失败,界面Constants将被破坏,您的应用程序可能会崩溃。
A如果和之间存在循环依赖Contants,A可能会观察到一些未初始化的静态字段Constants