小编Jos*_*ley的帖子

泛型通配符实例化

前几天我正在审查其他人的代码,我遇到了引起一些担忧的问题.为了简化,我说我有一个通用的A类和一个抽象的B类.是否允许以下​​实例化,如果允许,为什么?

Object obj = new A<? extends B>();
Run Code Online (Sandbox Code Playgroud)

我个人从来没有见过像上面这样的实例化,虽然这样的声明如

A<? extends B> obj = null;
Run Code Online (Sandbox Code Playgroud)

肯定会持有.我总是在泛型中使用通配符来声明方法参数,所以我可能没有经验.

java generics declaration wildcard instantiation

7
推荐指数
1
解决办法
1417
查看次数

水平马氏化

我必须实现水平标记(NLP概念),并且我在理解树的外观方面有点麻烦.我一直在阅读Klein和Manning的论文,但他们没有解释具有2阶或3阶水平标记的树会是什么样子.有人可以对算法有所了解吗?看起来树是什么样的?我对NLP比较陌生.

tree parsing nlp context-free-grammar

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

GKSession问题 - Objective-C GameKit

好吧,我一直在尝试创建自己的GKS​​ession对象,委托方法在控制台中给我一个错误,我还没有弄清楚如何修复.我想知道是否有人有任何建议或遇到过这个问题?*只是一个注释 - 变量peerStatus在我的代码中的其他地方定义.对等体可以被赋予"kServer"或"kClient"状态.我宁愿将每个定义为GKSessionModeServer或GKSessionModeClient,因为我已经读过,如果对等体在GKSessionModePeer中,则性能时间实际上较慢,因为它必须完成客户端和服务器的工作.

- (GKSession *)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
    if (peerStatus == kServer) {
        GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeServer];
        return [session autorelease];
    }
    else {
        GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeClient];
        return [session autorelease]; 
    }
}
Run Code Online (Sandbox Code Playgroud)

整个错误代码是:

收听端口56386 2009-06-30 10:31:41.892 GKTank [17756:20b]***由于未捕获的异常'GKInvalidArgumentException'终止应用程序,原因:'必须提供具有GKSessionModePeer模式的vaild GKSession对象,或者在-peerPickerController:sessionForConnectionType:的实现中创建一个默认的GKSession对象返回'nil'.提供的对象是:发送0个数据包:rush(0个包0个字节):依赖(0个包0个字节):rtry(0个包0个字节):sack(0个包0个字节):当前加权平均值rtt(0 ms)会话模式:0'2009-06-30 10:31:41.893 GKTank [17756:20b] Stack:(807902715,2452446779,807986683,807986522,927035842,927037074,927038407,815223834,927038949,9245,8562,814709201,815110321, 815119058,815114270,814813151,814722763,814748641,839148405,807687520,8068683624,839142449,839142646,814752238)

iphone cocoa-touch objective-c gamekit

5
推荐指数
1
解决办法
4219
查看次数

如何在jar文件中嵌入perl脚本以便执行?

我是Perl的新手,但现在已经用java编程了几个月(来自C++背景).我编写了一个解析一些数据日志的Perl脚本,现在我正在为之工作的客户想要一个GUI.GUI已经创建为java applet(使用Netbeans),我想将perl脚本"嵌入"其jar文件中作为默认安全功能.预计将来稍后会对perl脚本进行多次更新,因此我希望将其设置为当更新出现时所有用户必须执行的操作是通过GUI定义到最新perl脚本的新文件路径.我已经用文件浏览器实现了这个功能,一切正常.

我遇到的问题非常简单,对于拥有更多java经验的人来说可能并不是很难.为了防止他们将来收到的更新的perl脚本之一无法正常工作,我希望他们能够使用默认的"嵌入式"脚本,如果他们不得不诉诸于此.当我通过Netbeans运行applet时,一切都运行正常但是当我尝试从命令行运行jar文件时,程序返回一个错误,说它无法找到该文件.我可能没有使用正确的术语来搜索此问题的解决方案,但我希望能够让我的jar文件在运行时执行嵌入式perl脚本.任何建议表示赞赏.我已经尝试将perl文件放在与java文件相同的包中,并仅通过文件名调用脚本,但这是不行的.

java perl jar

5
推荐指数
1
解决办法
1981
查看次数

d3边缘标签是否可行?

是否可以使用d3在图表中添加边缘标签?我查看了示例和一些文档,我可以看到节点标记可能在哪里,但边缘标记没有明确提到任何地方(我可以找到).

html svg d3.js

5
推荐指数
1
解决办法
3950
查看次数

Eclipse标签宽度不变

我查看了几篇与此相关的帖子,但它们似乎并没有帮助我解决我的问题.我有一个项目,其中java文件缩进为2空格宽度.我想将所有内容改为4空间宽度.我尝试了"正确的缩进"选项,但是当我将几行修改为4空格缩进时,它只是将所有内容移回到2个空格的宽度.我检查了Java-> Code Style-> Formatter中的设置,默认为4空间宽度.我还检查了General-> Editors-> Text Editors的设置,它们被设置为4空格标签宽度.

我认为正确的缩进可能是读取整个java文件并更正代码,因此它符合文件中的其他所有内容,因此我手动修改每一行以具有4个空格宽度的缩进.自动更正缩进仍然会将所有内容都恢复为2个空格.以前有人有这个问题吗?还有其他设置要改变吗?

java eclipse tabs width

5
推荐指数
1
解决办法
6764
查看次数

错误LNK2019:未解析的外部符号

好的,所以我在尝试找出代码中的问题时遇到了问题.我有很多代码,所以我只会在编译时发布相关的部分.我在类中有以下函数,它将进行编译,一切运行正常,直到我调用函数"CalculateProbabilityResults"并在其中运行第7行代码.我在程序中"删除了"这行代码,因此您可以更轻松地找到它.我很确定我有正确的#include指令,因为它在不调用函数时编译得很好,所以这不是问题吗?我知道我的一些命名符号需要一些帮助,所以请耐心等待.在此先感谢帮助人员.

int SQLServer::CalculateProbabilityResults(int profile, int frame, int time_period, int TimeWindowSize) {
    ofstream ResultFile;
    stringstream searchFileName;
    stringstream outputName;
    vector<vector<int>> timeFrameItemsets;
    int num = getTimeFrameFile(frame*TimeWindowSize, TimeWindowSize);
    cout << num << endl;

    //outputName << "Results" << getTimeFrameFile((frame*TimeWindowSize), TimeWindowSize) << ".csv";
    cout << outputName.str() << endl;
    outputName.clear();
    //ResultFile.open(outputName.str().c_str());
    ResultFile.close();
    result.resize(0);
    return 0;
}

int getTimeFrameFile(int timeInHours, int timeFrameSize) {
    int fileNum = 0;
    int testWin;
    if (timeInHours > 24) {
        while (timeInHours >24)
            timeInHours -= 24;
    }
    for (testWin = 0; testWin < 24/timeFrameSize; …
Run Code Online (Sandbox Code Playgroud)

c++ lnk2019 visual-studio-2008 visual-studio

4
推荐指数
1
解决办法
2937
查看次数

GridFieldManager不会跨越整个屏幕宽度

好吧,我在开发黑莓Bold 9700,我试图让一个1X4格(1行,4列)跨越黑莓屏幕的整个宽度,但它一直短上来.我的意思是,默认情况下网格是左对齐的,如果我可以让整个网格跨越整个宽度(这没关系),这很好.有些开发人员可以告诉我我做错了什么吗?我以为你只是在声明一个新网格时在构造函数中添加了GridFieldManager.USE_ALL_WIDTH,但它仍然不适用于我.

final class App3_MainScreen extends MainScreen {
private int numColumns, size;
// Constructor
App3_MainScreen() {
    // declare a layout manager to take care of all the layout stuff
    numColumns = 4;
    size = 4;

    VerticalFieldManager vfm = new VerticalFieldManager();
    vfm.add(new LabelField("using all width & long label...", LabelField.ELLIPSIS | Field.FIELD_HCENTER));

    int borderHeight = Display.getHeight()/2;g
    int borderWidth = Display.getWidth()/2;

    Manager gridFieldManager = new GridFieldManager(1, 4, GridFieldManager.USE_ALL_WIDTH | GridFieldManager.AUTO_SIZE);    // 1 row and 4 columns
    gridFieldManager.add(new ButtonField(""+borderHeight, Field.FIELD_HCENTER));
    gridFieldManager.add(new ButtonField("222", Field.FIELD_HCENTER));
    gridFieldManager.add(new …
Run Code Online (Sandbox Code Playgroud)

grid blackberry fieldmanager

4
推荐指数
1
解决办法
4258
查看次数

用Scapy与C套接字交谈

我建立了UDP连接并正在侦听端口(本地主机),并且我也尝试从本地主机发送Scapy数据包。由于某种原因,我的C代码实际上从未捕获过该数据包,但是我可以看到该数据包在Wireshark中显示的很好。自从我使用套接字以来已经有一段时间了,但是我是否必须设置一些特殊的套接字选项,或者为什么我能够看到Wireshark中的数据包很好,但不能看到C套接字呢?

注意:当我编写了相应的套接字代码以发送数据包(从本地主机)时,我能够成功捕获数据包,但是当从另一台计算机发送时,我仍然无法获得侦听代码来捕获数据包。

我发现了一个类似的问题,但是当我尝试使用它们的方法(使用UDP而不是TCP)时,我仍然无法通过netcat捕获Scapy数据包。

C代码(为简明起见,压缩)

int main() {
    int sock, dataLen, inLen;
    struct sockaddr_in inAddr;
    short listen_port = 8080;
    char buffer[2048];

    if (sock = socket(AF_INET,SOCK_DGRAM,0) < 0) {
        printf("ERROR: unable to establish socket\n");
    return -1;
    }

    // zero out address structure
    memset(&inAddr, 0, sizeof(inAddr));

    inAddr.sin_family = AF_INET;
    inAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    inAddr.sin_port = htons(listen_port);

    if (bind(sock, (struct sockaddr*)&inAddr, sizeof(inAddr)) < 0) {
    printf("ERROR: unable to bind\n");
    return -1;
    }

    inLen = sizeof(inAddr);

    printf("Now listening on port %d\n", listen_port);
    while(1) { …
Run Code Online (Sandbox Code Playgroud)

c sockets networking scapy localserversocket

4
推荐指数
2
解决办法
2863
查看次数

逐行读取文件的最快方法,每个文件中包含任意数量的字符

好的,我正在试图找出哪种方式可以更快地读取我正在使用的文本文件.该文件的内容如下所示

1982 3923 3542 4343
2344 3453 2
334 423423 32432 23423

它们基本上只是一个任意数量的int数,我需要逐行读取.使用getline或insert(>>)运算符会更好吗?我个人认为通过使用插入运算符实现起来会容易得多,但我不知道如何编写程序,以便它读取同一行中的所有int数字,直到它到达结尾.我想把它设置如下:

ifstream input;
input.open("someFile.txt");
if (input) {
    char* ch;
    while (ch != '\n\)
        getline(input, buffer, ' ')
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我必须转换为int,然后将每个int放在一个数组中.我期望的最终目标是生成一个二维数组,其中int的每一行都是int的数组.有关最佳实施的任何建议表示赞赏!

c++ file-io multidimensional-array

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