gpt4 book ai didi

android-studio - 为什么 AS 告诉我 `(ob instanceof Button)` 总是 `false` ?

转载 作者:行者123 更新时间:2023-12-03 16:48:46 24 4
gpt4 key购买 nike

为什么AS告诉我(ob instanceof Button)总是 false ?

此外,它给 'Cast to Button' 一个“提示” .如果我接受提示,什么都不会改变。

  void setTextSizeForField(int textSize, Object ... obs){
for(Object ob: obs)
if (ob instanceof EditText) ((EditText) ob).setTextSize ( textSize );
else if (ob instanceof TextView) ((TextView) ob).setTextSize ( textSize );
else if (ob instanceof Button) ((Button) ob).setTextSize ( textSize/10 );
}

邮件全文如下:
Condition 'ob instanceof Button' is always 'false' less... (Ctrl+F1) 
This inspection analyzes method control and data flow to report possible conditions that are
always true or false, expressions whose value is statically proven to be constant, and
situations that can lead to nullability contract violations.

Variables, method parameters and return values marked as @Nullable or @NotNull are
treated as nullable (or not-null, respectively) and used during the analysis to check
nullability contracts, e.g. report possible NullPointerException errors.

More complex contracts can be defined using @Contract annotation, for example:
@Contract("_, null -> null") — method returns null if its second argument is null

@Contract("_, null -> null; _, !null -> !null") — method returns null if
its second argument is null and not-null otherwise

@Contract("true -> fail") — a typical assertFalse method which throws an
exception if true is passed to it
The inspection can be configured to use custom @Nullable

@NotNull annotations (by default the ones from annotations.jar will be used)

我没有使用注释。

* 编辑 *

如果我交换两个 else if语句,我没有收到警告并且代码运行良好。

所以我想“没关系”可能是有序的,但你认为 AS 在做什么?

最佳答案

Documentation显示 Button扩展 TextView ,因此永远不会采用该分支。如果您反转支票 ButtonTextView ,然后将采取不同的路径。

关于android-studio - 为什么 AS 告诉我 `(ob instanceof Button)` 总是 `false` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30494885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com