羽绒铸造被认为是不好的做法?

时间:2014-04-09 10:44:02

标签: java object

所以,我有一个类似下面的设置,其中AB都是abstract类。

abstract class ObjectA extends ObjectB<ObjectC> {

}

public class ObjectD extends ObjectA{

    public static void main(String[] args){
        ObjectA x = new ObjectD();
        ObjectD y = (ObjectD)x; // down cast
    }

}

我正在使用一个库,我想在ObjectB中使用抽象方法,并为所有类提供默认构造函数 - ObjectA。我不确定我的做法。 BTW ObjectB是我正在使用的预定义库的一部分。 ObjectA是我自己的类,提供默认属性和构造函数。

我的方法不太确定,看起来不太好吗?

添加:

ObjectA需要一种扩展ObjectA的类型。

public abstract class ObjectA<T extends ObjectA<T>> {

}

因此,需要我正在做的事情。

1 个答案:

答案 0 :(得分:2)

请注意,在某些情况下,您可能会遇到运行时错误,因为通过显式转换,您告诉编译器要相信您并不是制造错误,因此它会忽略错误并在编译时不会检测到错误。

只要你知道自己在做什么,那就没问题了。为安全起见,您始终可以使用instanceof