2016-04-25 7 views
0

のJava:PHP-Java-Bridge、拡張の使用?

package test; 

public class HelloWorld { 
public HelloWorld(String args){ 
} 

public void ppp(){ 
    System.out.println("...."); 
}; 

public void set(HelloWorld hw){ 
    hw.ppp(); 
} 

public static final String JAVABRIDGE_PORT = "28080"; 
static final php.java.bridge.JavaBridgeRunner runner = php.java.bridge.JavaBridgeRunner 
     .getInstance(JAVABRIDGE_PORT); 

public static void main(String args[]) throws Exception { 
    runner.waitFor(); 
} 
} 

はPHP:

<?php 
require_once("/home/gt/workspace/JavaPhp/Java.inc"); 
use test\HelloWorld; 

class abc extends HelloWorld{ 
function ppp(){ 
echo "!!!!"; 
} 
} 

$hw =new java("test.HelloWorld","str"); 
$hw -> set(new abc("str")); 

あなたはPHPのクラスは、Javaクラスを拡張し、set()方法は、PHPのクラスは、Java側に通過させるJavaのメソッドであるPHPコードで見ることができます。

"!!!!" 「....」ではない?

私はpy4jがPHP/Java Bridgeのやり方を疑問に思っていることは知っていますか?

+0

http://blog.csdn.net/guotong1988/article/details/51251396 –

答えて

0

各引数をチェックするカスタムのphp5/php7 __autoload関数を使用して実装することができます。また、Javaのインスタンスの場合は、wrapped Java型の生成されたインタフェースのリストとともにjava_closure()を使用してラップします。擬似コードのようなもの:

java_autoload_function() {... 
__call(java_closure($type, null, $Class->getInterfaces($type))) 
} 

Java.incにadditinal PHPコードが10〜15行以上必要です。

関連する問題