我正在使用 SabreAMF 调用 Java Web 服务。
这是Java函数:
@RemotingInclude
public Boolean testAMF(List<Integer> ints)
{
for (Integer element : ints)
{
//do something
}
return true;
}
请注意,此函数接受整数列表。
这是PHP代码:
<?php
require 'SabreAMF/Client.php';
function make_request($service, $method, $params)
{
$client = new SabreAMF_Client('https://xxx');
return $client->sendRequest($service.'.'.$method,$params);
}
$ints = array(1,2);
$parameters = array($ints);
$result = make_request('chartManager','testAMF',$parameters);
var_dump($result);
?>
我传递一个包含 2 个整数的数组。在 Java 中,此数组以列表形式出现,但其中包含双精度数,而不是整数。
然后我收到以下错误:
java.lang.ClassCastException : java.lang.Double cannot be cast to java.lang.Integer
为什么它将我的整数更改为 double ?