我正在为基于Apache MINA的协议项目创建一个测试平台.在MINA中,当您收到数据包时,该messageReceived()方法将获取一个Object.理想情况下,我想使用JUnit方法assertClass(),但它不存在.我正在努力找出最接近的东西.我试图找到类似的东西instanceof.
目前我有:
public void assertClass(String msg, Class expected, Object given) {
if(!expected.isInstance(given)) Assert.fail(msg);
}
Run Code Online (Sandbox Code Playgroud)
称之为:
assertClass("Packet type is correct", SomePacket.class, receivedPacket);
Run Code Online (Sandbox Code Playgroud)
这可以毫无问题地工作,但是在试验和玩这个游戏时,我的兴趣达到了instanceof运营商的高峰.
if (receivedPacket instanceof SomePacket) { .. }
Run Code Online (Sandbox Code Playgroud)
instanceof如何SomePacket用于引用手头的对象?它不是一个对象的实例,它不是一个类,它是什么?!一旦确定了什么类型SomePacket,那么有可能扩展我assertClass()不必包括SomePacket.class参数,而是支持SomePacket?
我在以下代码中的注释标记位置出现"非法表达式启动"错误.我该如何更正此错误?
class planetUfo {
public static void main (String[] args) {
// having data for counting the index
char letters[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
// initial data
String[] groups = {"COMETQ", "ABSTAR"};
String[] comets = {"HVNGAT", "USACO"};
// Problem here!
// to count the index
private void countIndex ( String group, String comet ) {
// I get here "illegal start of an expression"
// to have two words in the array
char[] name = { group, comet };
// to go …Run Code Online (Sandbox Code Playgroud) 我正在用PHP编写客户管理系统,以便离线使用(即在客户端计算机上).我考虑使用Java或C#,但得出的结论是,让浏览器为我做所有布局更容易,只需让公司在他们的计算机上安装wamp.
通过这个界面,他们还可以管理代理商(即,他们所在地区的销售人员获得公司订单,以防任何人不知道).这是我将在这篇文章中用来演示我遇到的问题的部分.
基本上我有4个类 - AgentPages,AgentList,AgentDetails和AgentForm.AgentForm将有两种模式 - 编辑和新模式.AgentPages有一个名为getPages的函数,它返回其他3个类的实例数组.但是它不喜欢"new"关键字.
我的代码如下(仅适用于AgentPages类):
<?php
require_once("AgentList.php");
require_once("AgentDetails.php");
require_once("AgentForm.php");
class AgentPages {
public function __construct() {
echo "Constructed";
}
private $pages = array("List" => new AgentList(), "Details" => new AgentDetails(), "Form" => new AgentForm());
function getPages() {
return $this->pages;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我正在使用启用了PHP的netbeans 6.9 IDE,并且(你可能猜到)我安装了wamp服务器.在PHP 5.3版本下,netbeans调试器告诉我"解析错误:在第20行的C:\ wamp\www\CustomerApp_v2\Agents\AgentPages.php中解析错误".在5.2.11下,它说明了该行上意外的T_NEW.我在第20行之前已经对此进行了大量评论,但我可以告诉你,第20行是$ pages的声明.我现在每个类都有一个空构造函数.
我也尝试了以下行而不是第20行:
$AgentList = new AgentList();
Run Code Online (Sandbox Code Playgroud)
这也不起作用 - 我得到了同样的错误.根据我所看到的所有教程,我的代码没有任何问题 - 我可能只是忽略了一些明显的东西.
有谁知道我做错了什么?我之前已经完成了很多PHP面向对象的东西,但是我最后一次触及它的时间是2年前.
提前致谢.
问候,
理查德
我在谷歌搜索过,但没有人发布解决方案,他们都说在配置中设置超时,但你怎么做?
如何从XMLRPC客户端或服务器重置/覆盖此设置?
这是我正在尝试的:
$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');
$client = $server->getProxy();
// Increasing the timeout
$client->setConfig(array('timeout'=>30));
Run Code Online (Sandbox Code Playgroud)
这是错误:
Fatal error: Uncaught exception 'Zend_XmlRpc_Client_FaultException'
with message 'Method "setConfig" does not exist'
in /usr/share/php/libzend-framework-php/Zend/XmlRpc/Client.php:370
Run Code Online (Sandbox Code Playgroud)
试图传递为arg:
$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc', array('timeout'=>30));
Run Code Online (Sandbox Code Playgroud)
这是错误:
Catchable fatal error: Argument 2 passed to
Zend_XmlRpc_Client::__construct() must be an
instance of Zend_Http_Client
Run Code Online (Sandbox Code Playgroud)
找到解决方案,这里是:
$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');
// Get the HTTP Client used by the XMLRPC client
$http_client = $server->getHttpClient();
// Increasing the HTTP timeout
$http_client->setConfig(array('timeout'=>30));
$client = $server->getProxy();
Run Code Online (Sandbox Code Playgroud)
One Line也适用于我: …
我怎样才能在php中访问属性值:
[photos] => SimpleXMLElement Object
(
[@attributes] => Array
(
[page] => 1
[pages] => 1
[perpage] => 24
[total] => 18
)
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
$photos->@attributes['total'] ;
$photos->{'@attributes'}['total'] ;
Run Code Online (Sandbox Code Playgroud)
以及这方面的许多变化
我试图通过使用simplehtmldom.sourceforge.net来操纵HTML代码.这是我到目前为止.我可以创建一个新文件或将index.html转换为index.php并从index.html复制head标签.问题是,我怎么能插入链接标签:
<link href="style.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
头部标签之间?
<?php
# create and load the HTML
include('simple_html_dom.php');
// get DOM from URL or file
$html = file_get_html('D:\xampp\htdocs\solofile\index.html');
$indexFile ='index.php';
$openIndexFile = fopen($indexFile,'a');
//find head tag
foreach($html->find('head') as $e)
{
$findHead = $e->outertext;
fwrite($openIndexFile, "\n" .$findHead. "\n");
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试执行一个MYSQL命令,该命令用给定的UserID抓取所有行,按日期对它们进行排序,然后只返回前5个.
排序命令是
ORDER BY date
Run Code Online (Sandbox Code Playgroud)
获得最后5个的命令是
WHERE ROWNUM <= 5
Run Code Online (Sandbox Code Playgroud)
WHERE在ORDER之前,所以它是向后的.所以我想我必须在mysql语句中有一个Mysql语句.
这是我的尝试.我收到别名错误,所以我将AS T1添加到命令中.
SELECT * FROM
(SELECT voting_id, caption_uid, voting_date, rating FROM voting
WHERE user_id = $inUserID AS T1
ORDER BY voting_date)
WHERE ROWNUM <= 5 AS T2;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我尝试了这个,当我尝试在类"second"中实例化类"first"时出现错误.
类"second"中的注释部分会导致错误.
class first {
public $a;
function __construct() {
$this->a = 'a';
}
}
class second {
//$fst = new first();
//public showfirst() {
//$firsta = $this->first->a;
// echo "Here is first \$a: " . $firsta;
//}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
这导致服务器错误,即使我在类"second"中的所有内容都是类"first"的实例化.
class second {
$fst = new first();
//public showfirsta() {
// $firsta = $this->fst->a;
// echo "Here is first \$a: " . $firsta;
//}
}
Run Code Online (Sandbox Code Playgroud) 我是git的新手,我知道git cherry-pick是如何工作的,但这是我的问题:
最近,我团队中的某个人更改了master中的目录结构,但没有更改另一个分支中的目录结构.
现在,当我对分支中的代码进行更改时,我想将它们(cherry-pick)带入master.这很好,直到master和branch中的目录结构相同.
topDir/some/subdir/file - master
topDir/some/other/subdir/file - branch
文件,其更改将被添加到master中是相同的,但不包含它所包含的目录结构.当我尝试以通常的方式进行樱桃选择时,我得到一个错误:
git checkout master git cherry-pick commit error:pathspec topDir/some/other/subdir/file不存在
现在,在这种情况下采摘樱桃的最佳方式是什么?任何指针都非常感谢.
好.我只是注意到,在同一个场景中,当我做一个挑选时,git足够聪明,可以从提交中正确选择其中一个文件,但不能识别另一个.
要使用我在原始帖子中提到的相同示例:在同一个提交中,topDir/some/subdir/file1,topDir/some/subdir1/file2.
我转到master,它有"file1"和"file2",只是在一个不同的目录结构中:topDir/src/some/subdir/file1 topDir/src/some/subdir1/file2.
现在,如果我做一个挑选,git足够聪明,可以获取file1中的更改,即使这是在不同的dir结构中,但不会获取file2的更改.有什么指针吗?如果有人希望我更清楚,我会很高兴.
所以,我所做的解决问题的方法是做一个樱桃选择,手动更改一个git没有拿起,以及"git commit -C.
我想将 xml 文件的内容显示为本身。我不想解析它,而是只是读取它的内容并显示它。
我试过
$content = file_get_contents("test.xml") ;
Run Code Online (Sandbox Code Playgroud)
但是$content其中有 xml。即,当我var_dump($content)输出时,string(899) " "
是否可以在不解析的情况下读取文件。请帮帮我。
谢谢。
php ×6
java ×2
alias ×1
cherry-pick ×1
config ×1
datetime ×1
git ×1
html-parsing ×1
junit ×1
mysql ×1
parse-error ×1
simplexml ×1
sorting ×1
xml ×1
xml-rpc ×1