小编Mar*_*ers的帖子

Maven"无法解析错误消息"(Java 7 + Maven 2)

我有一个基于maven的GWT项目,其中包括番石榴.我遇到麻烦,Maven尝试(并且失败)编译它找到的源guava-gwt*.jar:

could not parse error message:   symbol:   static setCountImpl
  location: class
/home/mark/.m2/repository/com/google/guava/guava-gwt/11.0.1/guava-gwt-11.0.1.jar(com/google/common/collect/AbstractMultiset.java):100: error: cannot find symbol
    return setCountImpl(this, element, count);
           ^
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么Maven认为需要编译源代码guava-gwt.这是我的项目的样子:

??? pom.xml
??? src
    ??? main
    ?   ??? java
    ??? test
        ??? java
            ??? SomeTestFile.java
Run Code Online (Sandbox Code Playgroud)

SomeTestFile.java

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import org.junit.Test;

public class SomeTestFile {
    @Test
    public void testMethod() {
        Multimap<Integer, String> someMap = ArrayListMultimap.create();
        someMap.put(5, "five");
        System.out.println(someMap);
    }

}
Run Code Online (Sandbox Code Playgroud)

的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>guava-problem</groupId>
    <artifactId>guava-problem</artifactId>
    <version>1.0</version> …
Run Code Online (Sandbox Code Playgroud)

java gwt maven guava

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

如何给Jackson解串器提供类型提示?

我正在使用杰克逊作为工具来声明一些我无法注释(或完全修改)类的对象.其中一个类有一个用于无类型列表的setter和getter.这是一个消毒版本:

public class Family {
    private List members;
    public List getMembers() { return members; }
    public void setMembers(List members) { this.members = members; }
    //...many, many other properties
}

public class Member {
    private String name;
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图反序列化的JSON:

{ "members" : [ { "name" : "Mark" } ] }
Run Code Online (Sandbox Code Playgroud)

我会使用的天真代码是这样的:

ObjectMapper mapper = new ObjectMapper();
Family family = mapper.readValue(json, Family.class);
Member member = (Member) …
Run Code Online (Sandbox Code Playgroud)

java jackson

8
推荐指数
1
解决办法
4557
查看次数

我该如何组织我的Java GUI?

我正在用Java创建一个游戏以获得乐趣,我正在尝试决定如何为GUI组织我的类.到目前为止,所有只有swing组件和布局(没有逻辑)的类都在一个名为"ui"的包中.我现在需要将侦听器(即ActionListener)添加到组件(即按钮).听众需要与Game类进行通信.

目前我有:Game.java - 创建框架添加面板

import javax.swing.*;
import ui.*;

public class Game {

    private JFrame frame;
    Main main;

    Rules rules;

    Game() {
        rules = new Rules();

        frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        main = new Main();
        frame.setContentPane(main.getContentPane());
        show();
    }

    void show() {
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) { new Game(); }

}
Run Code Online (Sandbox Code Playgroud)

Rules.java - 游戏逻辑

ui包 - 所有类创建新面板以与主框架的内容窗格交换出来Main.java(主菜单) - 创建一个包含组件的面板

我现在在哪里为Main类放置功能?在游戏课上?单独上课?或整个组织是错的?

谢谢

java user-interface swing organization

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

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

比较枚举的最佳方法

例如,我有一个枚举enum Color { Red, Brown }.我也有一些这种类型的变量:

Color c1 = Brown, c2 = Red
Run Code Online (Sandbox Code Playgroud)

比较常数值的最佳方法是什么:

if (c1 == Color.Brown) { 
    //is brown
}
Run Code Online (Sandbox Code Playgroud)

要么

if (c1.equals(Color.Brown)) {
    //is brown
}
Run Code Online (Sandbox Code Playgroud)

java enums

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

Java项目目录结构约定

我曾在maven项目中工作过,目录结构如下所示:

src/
  main/
    java/
  test/
    java/
Run Code Online (Sandbox Code Playgroud)

我想知道是否存在其他目录结构约定.这个约定是maven特定的还是适用于所有Java?我有一个需要多种编程语言的项目,并对是否存在某种标准感到好奇.

java directory maven

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

条目集上的通用迭代器

static <V> void myMethod(Map<?, V> map)
{
 Iterator<Entry<?, V>> it = map.entrySet().iterator();
}
Run Code Online (Sandbox Code Playgroud)

我在下面看到编译错误:
类型不匹配:无法转换Iterator<Map.Entry<capture#5-of ?,V>>Iterator<Map.Entry<?,V>>

java generics

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

Java慢socket.connect()

以下是客户端和服务器的源代码.客户端只是(并发地)连接到服务器并立即关闭连接.完成所有线程后,它会等待2分钟并再次连接.我很困惑,有时一个简单的连接需要大约3秒!大多数情况下,连接需要大约0-32ms.

这是客户端的典型输出:

...
Connect 23 [ms]: 16
Connect 22 [ms]: 32
Connect 21 [ms]: 32
Connect 15 [ms]: 32
Connect 14 [ms]: 16
Connect 13 [ms]: 16
Connect 11 [ms]: 32
Connect 25 [ms]: 3016
Run Code Online (Sandbox Code Playgroud)

如果客户端和服务器位于不同的主机上,这似乎只会发生.Windows和Linux的可比行为Java 1.6.23

启动服务器2需要参数:[port] [线程池大小]

启动客户端需要3个参数:[host] [port] [线程池大小]

例如,我为服务器使用了150个线程池大小,为客户端使用了25个线程池大小.

任何人都可以解释这种行为吗?

-----服务器-----

package de.test.server;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ServerApp {

   public static void main(String[] args) throws IOException {
      System.out.println("server running...");

      final int port = Integer.parseInt(args[0]);
      final int …
Run Code Online (Sandbox Code Playgroud)

java sockets

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

使用Java的Regex从路径名中提取单词

我有一个这样的目录,我试图从"photon.exe"之前提取"光子"一词.

C:\ workspace\photon\output\i686\diagnostic\photon.exe(Suspended)线程(正在运行)

我的代码看起来像这样:

String path = "C:\workspace\photon\output\i686\diagnostic\photon.exe(Suspended) Thread(Running)";
Pattern pattern = Pattern.compile(".+\\\\(.+).exe");

Matcher matcher = pattern.matcher(path);

System.out.println(matcher.group(1));
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么样的排列,我都会继续获取IllegalStateExceptions等,尽管这个正则表达式在http://www.regexplanet.com/simple/index.html上运行.

在此先感谢您的帮助.我在这一点上非常沮丧>.<

java regex

5
推荐指数
2
解决办法
2936
查看次数

为什么实现接口的类不算与Java中的接口类型相同?

我有

out.load(output, transactions, columnHeaders, dataFormat);
Run Code Online (Sandbox Code Playgroud)

在哪里load定义为:

public boolean load(String outputfile, List<Transaction> transactions, List<String> columnHeaders, String dataFormat);
Run Code Online (Sandbox Code Playgroud)

String output = "";
String dataFormat = "";
ArrayList<ARTransaction> transactions = new ArrayList<ARTransaction>();
List<String> columnHeaders = null;
Run Code Online (Sandbox Code Playgroud)

哪里

ARTransaction implements Transaction
Run Code Online (Sandbox Code Playgroud)

为什么类型有问题transactions

java generics inheritance types

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