2017-12-28 33 views
-4

この問題を解決するにはエラーがあります:バイナリ演算子 '*'のオペランドタイプが正しくありませんか?演算子 '*'は 'int'、 'java.lang.String'には適用できません

これは私のコードです:

int minimal = (Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal())) 
      *(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 

が、これは誤りです: エラー:(80、17)エラー:バイナリ演算子の悪いオペランドの型 '*'

最初の型:int

第2タイプ:文字列

誰かが私を助けることができますか? 私はアンドロイドスタジオの新人です。これは初めてのことです。 お時間をいただきありがとうございます。 :)

+5

このような複雑なコードは書かないでください。それは読みには時間がかかり、理解するのは複雑すぎます。変数に抽出すると、問題が何であるかを知ることができます。 – Henry

+0

コードを書式設定し、完全なエラーを共有してください。 –

答えて

1

2番目のオペランドはまだ文字列です。このようにしてください。

int minimal = Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal()) 
      *Integer.parseInt(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 

その複雑なので、単純にプリミティブ変数を使用すると簡単に読み取ることができます。

int opA=Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal()); 
    int opB=Integer.parseInt(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 
    int minimal=opA*opB; 
関連する問題