О PHP / Java Bridge Вызов метода Java с параметром Object

Мне удалось запустить проект моста Php / Java и test.php
но у меня проблема.
я хотел бы вызвать метод Java с параметром Java Object
Источник Java:

public class OtherClass {
public BaseBean funBean(BaseBean param){
param.setName("Bean Name");
return param;
}
}

public class BaseBean {
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String name;

}

PHP скрипт:
Я хотел бы, чтобы это могло бежать так, это не может.

<?php
require_once("java/Java.inc");
//require_once("java/java_helper.php");

class BaseBean{
public $name;
}
$eh = new java("com.anima.service.OtherClass");
$cla = new BaseBean();
$cla->name = "nameTest";
$eh->funBean($cla);
?>

Или есть какое-то решение, которое может помочь мне реализовать эту идею.
Я хочу, чтобы вызвать метод Java с PHP-объекта.

Можете ли вы, пожалуйста, кто-нибудь помочь мне в этом.

Заранее спасибо.

0

Решение

Я думаю, что вы должны создать BaseBean как «экземпляр Java», а также:

$cla = new java("com.anima.service.BaseBean");

Или же вы можете попробовать с java_closure, но я думаю, что в этом случае вы должны изменить ожидаемый тип в вашем java-методе следующим образом:

public Object funBean(Object param){ ... }
$cla = new BaseBean();
$cla->name = "nameTest";
$jObjCla = java_closure($cla);
$eh->funBean($jObjCla);

Я нашел в Документация по мостам PHP / Java у того метода java_closure есть третий параметр, который представляет собой массив интерфейсов Java, который должен быть реализован созданным обернутым объектом:

java_closure(new Listener(), null, array(new Java("java.awt.event.ActionListener")));

Источник Java:

public interface IBaseBean {
String getName();
void setName(String name);
}

public class OtherClass {
public IBaseBean funBean(IBaseBean param){
param.setName("Bean Name");
return param;
}
}

public class BaseBean implements IBaseBean {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String name;
}

PHP скрипт:

<?php
require_once("java/Java.inc");

class BaseBean{
public $name;
}
$eh = new java("com.anima.service.OtherClass");
$cla = new BaseBean();
$cla->name = "nameTest";
$jObjCla = java_closure($cla, null, array(new Java("com.anima.service.IBaseBean")));
$eh->funBean($jObjCla );
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]