小编Ant*_*n K的帖子

将枚举转换为集/列表

是否有一些单行桥接方法将给定的枚举转储到java.util.List或java.util.Set?

某些内置类似Arrays.asList()Collection.toArray()应该存在的东西,但我无法在IntelliJ调试器的评估窗口中找到它(以及Google/SO结果).

java api collections conventions

155
推荐指数
5
解决办法
9万
查看次数

maven项目:SWT 3.5依赖:任何官方公共回购?

好吧,简而言之,我可能需要获取新的SWT版本而不是我们现在使用的3.3版本.该项目现在只有这种依赖,并建立良好:

<dependency>
  <groupId>org.eclipse.swt.win32.win32</groupId>
  <artifactId>x86</artifactId>
  <version>3.3.0-v3346</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

AFAICGoogle,公共maven回购中没有更新版本:http://repo1.maven.org/maven2/org/eclipse/swt/

所以:

  1. 最新版本是否有一些公共maven回购?
  2. 如果没有,您在哪里获得本地和/或公司Nexus中安装的罐子?
  3. 你知道的任何groupId/artifactId建议/约定?

TIA

PS:我主要是Eclipse产品网站布局的菜鸟,通常会迷失在谷歌搜索结果和/或Eclipse网站本身......所以虽然答案可能对你很明显,但对我来说可能不是这样,甚至回顾.

java swt conventions maven

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

java .properties文件值中的换行符

我是否真的需要使用原始的unicode char转义来将换行符嵌入到我的.properties文件中?

在文件冗长的讨论是很酷,但不知何故,我错过了这一点.现在尝试再次扫描这个批量,但也许有人知道吗?

谢谢,安东


更新

某些特殊字符可以使用类似于用于字符和字符串文字的转义序列在键和元素中表示

我不确定那些" 某些特殊字符"可能是什么.1.4 javadocs的直接链接没有导致规范的正确部分.但在查找了正确的段落之后,这对我来说非常清楚.

java properties

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

如何正确捆绑GWT与我的webapp?(是:为什么gwt-user-1.7.0包含Servlet API类)

有没有人知道这种捆绑决定的理智?谷歌的工程师在大多数情况下都采取了明智的行动,所以这让我很惊讶.

这将导致与通过Maven依赖项提取的其他版本的servlet API发生冲突:

  • webapp classpath可能包含与GWT捆绑在一起的版本;
  • 容器可能会拒绝加载GWT jar,因为它包含javax.servlet包;
  • 在大多数情况下,这可能会偏离IDE的调试器和真正执行的VM的类路径.

链接到有问题的jar(正如你在解压缩后看到的那样,如果你不相信GWT在同一个jar中包含servlet API类):http: //repo1.maven.org/maven2/ COM /谷歌/ GWT/GWT用户/ 1.7.0/GWT-用户1.7.0.jar

gwt

11
推荐指数
2
解决办法
6892
查看次数

CouchDB/MochiWeb:持久连接的负面影响

我在Mint/Debian盒子上设置了非常简单的CouchDB.我的Java webapp在查询CouchDB时遇到了相当长的延迟,所以我开始寻找原因.

编辑:查询模式是许多小查询和小JSON对象(如300字节向上/ 1Kbyte向下).

Wireshark转储非常好,主要显示3-5毫秒的请求 - 响应周转.JVM帧采样向我展示了套接字代码(客户端查询到Couch)有点繁忙,但没什么了不起的.然后我尝试用ApacheBench和oops来描述它:我目前看到keep-alive在非持久性设置上引入了稳定的额外39ms延迟.

有谁知道如何解释这个?也许持久连接会增加TCP层的拥塞窗口,然后由于TCP_WAIT和小的请求/响应大小而空闲,或类似的东西?是否应该为环回tcp连接打开此选项(TCP_WAIT)?

w@mint ~ $ uname -a
Linux mint 2.6.39-2-486 #1 Tue Jul 5 02:52:23 UTC 2011 i686 GNU/Linux
w@mint ~ $ curl http://127.0.0.1:5984/
{"couchdb":"Welcome","version":"1.1.1"}
Run Code Online (Sandbox Code Playgroud)

保持活着,每次请求平均40毫升

w@mint ~ $ ab -n 1024 -c 1 -k http://127.0.0.1:5984/
>>>snip
Server Software:        CouchDB/1.1.1
Server Hostname:        127.0.0.1
Server Port:            5984

Document Path:          /
Document Length:        40 bytes

Concurrency Level:      1
Time taken for tests:   41.001 seconds
Complete requests:      1024
Failed requests:        0
Write errors:           0
Keep-Alive requests: …
Run Code Online (Sandbox Code Playgroud)

profiling couchdb tcp http congestion-control

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

花式仿制药捕获碰撞

请给我一个关于这里发生了什么的提示:

List<? extends Number> a = new ArrayList<Number>();
List<? extends Number> b = new ArrayList<Number>();

a.addAll(b); // ouch! compiler yells at me, see the block below:
/*
  incompatible types
  found   : java.util.List<capture#714 of ? extends java.lang.Number>
  required: java.util.List<java.lang.Number>
 */
Run Code Online (Sandbox Code Playgroud)

这个简单的代码无法编译.我依稀记得与类型捕获有关的东西,比如应该主要用于接口规范,而不是实际的代码,但我从来没有像这样傻眼.

这当然可能是强力固定的,就像那样:

List<? extends Number> a = new ArrayList<Number>();
List<? extends Number> b = new ArrayList<Number>();

@SuppressWarnings({"unchecked"})
List<Number> aPlain = (List<Number>) a;
@SuppressWarnings({"unchecked"}) 
List<Number> bPlain = (List<Number>) b;

aPlain.addAll(bPlain); 
Run Code Online (Sandbox Code Playgroud)

那么,我是否真的必须放弃声明中的捕获(捕获来自界面,所以我将不得不更改一些API),或坚持使用抑制注释的类型转换(这通常会使代码变得混乱和复杂化一点点)?

java generics

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

git:列出悬空标签

语境:

  • 假设你有一些相当棘手的 CI/CD 工作流程,它依赖于 git 标签
  • 构建功能分支并生成一些短期标签以表示产生可部署工件的提交
  • 当功能分支被压缩合并时,通常它会被删除,但不出所料,标签仍然存在
  • 比如说,经过几个月的开发,标签列表可以预见地变得毛茸茸的

因此,问题:

我将如何使用 git 命令行和可选的基本 bash 工具

  1. 列出所有给定标签可达的分支(双重标签是git tag -l --merged ${BRANCH_COMMITTISH},但我不需要给定分支的标签,而是给定标签的分支)
  2. 列出上面第 1 点输出为空的所有标签(显然这可以用 for 循环(给定 1 的任何终止实现),但也许有一些简洁的神奇 git one-liner)?

git git-log git-tag git-branch

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

将非ascii符号降级为最接近的7位ASCII等效符号(最好是Java)

是否有任何简单/轻量级的解决方案将至少一些非ASCII符号更改为相应的ASCII模拟?例如这个字符串

abc-åäö.txt
Run Code Online (Sandbox Code Playgroud)

应改为

abc-aao.txt
Run Code Online (Sandbox Code Playgroud)

一点背景:Zip-tools不能可靠地支持UTF-8,因此需要降级.AFAICR Google"将附件下载为单个zip文件"功能会将所有非ascii符号替换为"_"字符.

PS:代码也可能是其他语言,如果它或多或少可以理解,我会把它移植到Java.PPS:到目前为止我的第一个问题,所以请不要在地面以下取消我好吗?

java unicode ascii character-encoding

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

改变JFileChooser行为:阻止在文件路径JTextField中输入"choose"

向Swing Pros致以问候,这是一个很好的(我希望)问题.

以下是我看到的任务要求和可能的解决方案.我想有人有这样的铁杆经验来分享一些关于这个的想法.

这不需要编码或类似的东西,我只需要一般性建议,关于我需要使用驻留在sun.swing和/或javax.swing.plaf包中的私有符号的事实,哪种方法更可靠.

任务是修改/改变JFileChooser行为(实际上只是一点点).

  1. 当用户在文件名JTextField中按Enter键,并且该字段包含dir的路径时,不要"选择"目录,而是切换到它.是的,对话框配置为接受目录,但我们只需要接受"打开"按钮的点击,并且(可能)双击文件列表表.

  2. 通过在文件名文本字段中输入,阻止用户选择数据超过1GB的目录/文件

以下是一些常规解决方案选项:

一个.聆听JFileChooser提供的基于属性的更改(事后触发哪个AFAICS,并且不会提供我们需要的控制程度).

湾 修改javax.swing.plaf.basic.BasicFileChooserUI(通过refrection,打破私有级封装)并修改引用

private Action approveSelectionAction = new ApproveSelectionAction();
Run Code Online (Sandbox Code Playgroud)

这样我们的自定义操作就会对1和2进行额外检查.这种方法与plaf包链接,如果在此UI类下面的某个类中以某种方式覆盖此操作,则可能会失败.

C.遍历JFileChooser组件层次结构,找到JTextField(显然应该只在组件树中出现一次),使用我们的自定义检查装饰挂在JTextField上的所有动作侦听器.我的调试会话显示这个JTextField是生活在sun.swing.FilePane中的JTextField的一些匿名子类.这种方法似乎更友好,但是对于某些操作系统来说,这个文本字段可能不存在,或者其他一些JTextField也存在于层次结构中.

好吧,似乎公共JFileChooser API不足以实现这种行为,而其他两个选项要么是深度魔术还是不可移植(长期),要么两者兼而有之.

所以,问题是:你会选择哪种方法?为什么?

java swing jfilechooser look-and-feel

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

哈德森:将SVN凭证映射到电子邮件

我打赌这在文档的某处突出显示,但我现在有点懒.

我们如何设置从SVN凭证到我们在通知中使用的电子邮件的映射,以防Hudson在签入后观察到失败的构建?将TeamCity广泛的通知设置与Hudson或Jenkins的设置进行比较会很好.

只需链接到文档中的正确位置即可.

谢谢,安东

UPD:我们现在面临的主要问题是只通知罪犯,而不是所有开发者.

java continuous-integration build-process hudson jenkins

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

有史以来第一个maven构建是否可以脱机?

问题是:你有一个压缩的java项目分布,它取决于几个库,如spring-core,spring-context,jacskon,testng和slf4j.任务是使事物可以脱机构建.可以使用所有必需的库jar创建项目范围的本地存储库.

我试过这样做.看起来即使项目包含javac和运行时所需的jar,构建仍然需要Internet访问.Maven仍然会潜入网络以获取构建所需的大部分自己的插件.我假设maven是使用空的.m2目录运行的(因为这可能是构建的第一次启动,可能是脱机构建).不,我不能在项目本身分发完整的maven repo快照,因为这看起来对我来说完全是混乱.

一点背景:更广泛的任务是创建Windows便携式JDK/IntelliJ Idea分布,它沿着项目进行,并允许在IDE内部进行一些最小的Java编码/运行,只需最少的配置和最少的Internet访问.该项目面向计算机课程的学生,对系统配置几乎没有控制权.最好保持控制台构建系统在离线模式下完好无损,但我想maven过分依赖于网络,所以我不得不放弃它以支持好老蚂蚁.

那么,您的意见是什么,我们可以完全在离线模式下移动第一个maven构建吗?我的直觉是,初始maven分布只包含从主要仓库中拉出必要插件所需的最低限度,并且如果没有看到主回购至少一次就不能完全正常运行.

java offline build offline-mode maven

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