Exemplos
Exemplo #1 Exemplo da Java
<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');
// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>
Exemplo #2 Exemplo da AWT
<?php
// Este exemplo é pretendindo para ser executado em CLI.
$frame = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');
$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;
$thread = new Java('java.lang.Thread');
$thread->sleep(10000);
$frame->dispose();
?>
- new Java() criará uma instância de uma classe se um construtor apropriado estiver disponível. Se nenhum parâmetros for passado e o construtor padrão for utilizável já que prove acesso à classes como java.lang.System que expõe a maior parte de suas funcionalidades através de métodos estáticos.
- Acessar um membro de uma instância primeiro procurará por uma propriedade bean, depois por campos públicos. Em outras palavras, print $date.time elel primeiro tentará trabalhar com $date.getTime(), depois com $date.time.
- Tanto membros estáticos como de instância podem ser acessados em um objeto com a mesma sintaxe. Além disso, se o objeto java é do tipo java.lang.Class, membros estáticos da classe (campos e métodos) podem ser acessados.
-
Exceções disparadas resultam em avisos do PHP e em resultados NULL. Os avisos podem ser eliminados prefixando uma chamada de método com um sinal "@". As seguintes APIs podem ser usadas para obter e reniciar o último erro:
- Resolução de sobrecarga em geral é um problema complicado dada às diferenças nos tipos entre as duas linguagens. A extensão Java aplica uma métrica simples, mas relativamente eficaz, para determinar qual sobrecarga é a melhor. Além disso, nomes de métodos no PHP não são sensíveis ao caso, potencialmente aumentando o número de sobrecargas a serem escolhidas. Uma vez que um método é escolhido, os parâmetros são alterados se necessário, possivelmente com perda de dados (exemplo: números de ponto flutuante de precisão dupla serão convertidos para booleano).
- Na tradição do PHP, arrays e hashtables podem ser usados de forma alternada. Perceba que hashtables no PHP só podem ser indexadas por inteiros e strings; e que arrays de tipos primitivos em Java não podem ser esparsos. Também note que essas estruturas são passadas por valor, então pode ter custo em termos de memória e tempo.
Exemplos
There are no user contributed notes for this page.
