小编Gor*_*don的帖子

在JUnit中创建assertClass()方法

我正在为基于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

java junit

3
推荐指数
1
解决办法
1万
查看次数

如何修复Java中的"非法表达式启动"错误?

我在以下代码中的注释标记位置出现"非法表达式启动"错误.我该如何更正此错误?

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)

java

3
推荐指数
1
解决办法
6万
查看次数

为什么我不能在PHP中将实例变量声明为对象数组?

我正在用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年前.

提前致谢.

问候,

理查德

php parse-error

3
推荐指数
1
解决办法
1253
查看次数

XMLRPC Zend_Http_Client_Adapter_Exception',带有消息'10秒后读取超时

我在谷歌搜索过,但没有人发布解决方案,他们都说在配置中设置超时,但你怎么做?

如何从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 zend-framework config xml-rpc httpwebrequest

3
推荐指数
1
解决办法
1万
查看次数

如何使用SimpleXml访问元素属性?

我怎样才能在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)

以及这方面的许多变化

php simplexml

3
推荐指数
1
解决办法
1745
查看次数

如何使用SimpleHtmlDom在HTML标题上的头标记之间插入链接标记

我试图通过使用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)

php html-parsing

3
推荐指数
1
解决办法
4740
查看次数

MYSQL-按日期排序后最后5行

我正在尝试执行一个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)

有任何想法吗?

mysql sorting datetime alias

3
推荐指数
1
解决办法
1337
查看次数

一个类可以实例化另一个类吗?(PHP)

我尝试了这个,当我尝试在类"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)

php

3
推荐指数
2
解决办法
7397
查看次数

Git Cherry-Pick

我是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.

git cherry-pick

3
推荐指数
1
解决办法
5593
查看次数

在php中获取XML文件内容作为字符串

我想将 xml 文件的内容显示为本身。我不想解析它,而是只是读取它的内容并显示它。

我试过

$content = file_get_contents("test.xml") ;
Run Code Online (Sandbox Code Playgroud)

但是$content其中有 xml。即,当我var_dump($content)输出时,string(899) " " 是否可以在不解析的情况下读取文件。请帮帮我。

谢谢。

php xml

3
推荐指数
1
解决办法
7465
查看次数