5

次のエラーが発生する理由がわかりません。何かご意見は?

エラーが発生しています:

Cannot cast object 'true' with class 'java.lang.Boolean' to class 'java.io.File'

これは、「if (envProp.exists()...」行でエラーを生成するコードです。

static private File envProp = new File('env.properties')
static private File envPropBak = new File('env.properties.bak')

@BeforeClass
static void beforeAll() {
    if (envProp.exists()) {
        envPropBak.write( envProp.text )
    }
}

envProp.exists()が何かを別のオブジェクトとしてキャストしようとする理由がわかりません。メソッド.exists()は単に を返す必要がありbooleanます。

ありがとう

4

3 に答える 3

6

今日も同じ問題がありましたが、私の場合は次のとおりでした。

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'true' with class 'java.lang.Boolean' to class 'java.util.List'

問題は、次のようなものがある場合です。

public List<Foo> method(){
    methodThatReturnsTrue()
}

Groovy は最後の文の return をメソッドの戻り値として使用するため、true をキャストしようとする<some_not_boolean_type>ため、エラーが発生します。

于 2013-06-13T11:43:08.457 に答える
1

完全を期すために、同様のメッセージが表示されたと言う必要があります。

クラス「java.lang.Boolean」のオブジェクト「true」をクラス「java.util.List」にキャストできません

私が呼び出したとき:

final List<String> reportedChangedFiles = linesOfChangedFiles.removeAll([null])

removeAll() が新しいコレクションを返すことを期待していましたが、現在のコレクションを変更し、代わりにブール値を返すことを忘れていました。したがって、次のように簡単でした。

linesOfChangedFiles.removeAll([null])
于 2015-06-19T08:16:15.590 に答える