1

これにparseIntを使用すると、なぜですか。

private String certainNumber;

public int getNumber()
{
    return Integer.parseInt(certainNumber);
}

コンパイルします。

しかし、私がこれを行うとしたら:

public String getStreetNumber()
{
    return streetNumber;
}

そしてparseIntは次のように戻り値を返します:

@Override
public int compareTo(Object o) 
{
    Address tempAddress = (Address)o;
    if(Integer.parseInt(getStreetNumber()) < tempAddress.Integer.parseInt(getStreetNumber()))
    {
        return -1;
    }
... // etc.
}

コンパイルされませんか?

編集:提案を試しました...まだコンパイルされていませんか?

edit2:助けてくれてありがとう!

4

7 に答える 7

4

これは、がクラスparseIntに属するメソッドであるためです。それを呼び出す必要があります。カスタム クラス (これはすべて Address クラスの一部なのでしょうか?) または tempAddress インスタンスのいずれかに parseInt 関数があるとは思えません。IntegerInteger.parseInt(value);

これを試して:

public int compareTo(Object o) 
{
    Address tempAddress = (Address)o;
    if(Integer.parseInt(getStreetNumber()) < 
          // you need to parse the return value of tempAddress's getStreetNumber() 
          // not get the tempAddress's parseInt of this.getStreetNumber()
          Integer.parseInt(tempAddress.getStreetNumber()))
    {
        return -1;
    }
 // etc...
}
于 2011-08-09T05:36:43.373 に答える
3

あなたが呼ばparseInt()なかったのでInteger.parseInt()

于 2011-08-09T05:35:18.523 に答える
2

parseIntIntegerクラスの静的メソッドです。あなたはそれを次のように呼びます Integer.parseInt(the_string_you_want_to_parse)

別のクラスのメソッドによって返された文字列を解析する場合は、次のように呼び出します。 Integer.parseInt(tempAddress.getStreetNumber())

于 2011-08-09T05:40:40.687 に答える
1

他の人があなたの直接の質問に答えましたが、これはあなたがやろうとしているのと同じことをするための非常にきれいな方法だと言わせてください:

return Integer.valueOf(getStreetNumber())
    .compareTo(
       Integer.valueOf(tempAddress.getStreetNumber()));

Integerはすでに実装されてComparableいるので、それを活用することもできます。

于 2011-08-09T05:40:31.187 に答える
0

if(Integer.parseInt(getStreetNumber())

于 2011-08-09T05:36:05.710 に答える
0

Address 参照で parseInt をどのように呼び出すことができますか?

  • > if(parseInt(getStreetNumber()) < tempAddress.parseInt(getStreetNumber()))

また、常に Integer.parseInt() と言う必要があります。parseInt を直接呼び出すことはできません。

于 2011-08-09T05:36:57.647 に答える
0

はい、静的にインポートすることもできます:

import static java.lang.Integer.parseInt;
于 2011-08-09T05:38:49.817 に答える