Android Superclass到Subclass cast

时间:2015-02-28 15:13:59

标签: java android android-studio downcast

我正在使用Android Studio为Android开发。 我试过这个

MarginLayoutParams mlp;
LayoutParams lpms = new LayoutParams(5, 5);
mlp = (MarginLayoutParams) lpms; //Throws Class cast exception

但它会导致ClassCastException。为什么? MarginLayoutParams是LayoutParams的子类。 我也尝试使用instanceof,但它返回false。我怎么做铸造?

更新: 我在GitHub上的Cyanogenmod Calculator应用程序中找到了这段代码:

final View childView = getChildAt(childIndex);
final MarginLayoutParams lp = (MarginLayoutParams) childView.getLayoutParams();

1 个答案:

答案 0 :(得分:1)

  

我该如何进行投射?

你不能。 lpms的类型不是MarginLayoutParams或其任何子类