小编Mat*_*nry的帖子

为什么返回类型之前的尖括号有时会从泛型方法的定义中省略

我正在阅读关于泛型的Effective Java第5章,特别是关于泛型方法的项目.我注意到有时候返回类型之前的方法声明中的类型参数(在尖括号之间)有时会被省略.有很多这样的情况,但例如在第二版的第135页:

public void popAll(Collection<E> dst) {
while (!isEmpty())
dst.add(pop());
} 
Run Code Online (Sandbox Code Playgroud)

另一方面,我在声明中看到过类似的泛型方法

public <E> void ...
Run Code Online (Sandbox Code Playgroud)

第一个是拼写错误吗?如果不是,我何时可以省略声明中的括号?

谢谢

java generics effective-java

9
推荐指数
2
解决办法
1024
查看次数

是否有一个Java-8之前的功能接口,它可以替代java.util.function.Consumer <T>?

期待迁移到Java 8,我试图以有利于使用lambda的方式编写代码.

我需要一个带有单个方法的函数接口,该方法接受某种类型的一个参数T并返回void.这是签名java.util.function.Consumeraccept()方法,但我当然不能使用呢.

我可以使用标准Java 7(最好是Java 6)API中的另一个接口吗?我知道我可以创造自己的,但尤其是.在将此代码移植到Java 8之前,如果我可以使用标准Java 6/7 API中已经熟悉的标准接口,则可读性更好.

到目前为止我发现的最接近的是com.google.common.base.Function<T,Void>,但是(a)它不是标准Java API的一部分,(b)它的文档说"功能的实例通常被认为是引用透明的 - 没有副作用",这是与我的预期用途相反(具有Void返回类型).

java lambda interface java-8

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

如何在git svn中评估ignore-paths?

我有一个简单的repo结构,如下所示:

trunk
    code
    othercode
    doc
    misc
branches
    b1
        code
        othercode
        doc
        misc
    b2
tags
    t1
    t2
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用git svn它来克隆它,但是想要省略doc并且misc在trunk +所有标签和分支上.但是,该ignore-paths选项并不像我期望的那样.

ignore-paths = (doc|misc)
Run Code Online (Sandbox Code Playgroud)

似乎工作,但我担心它也会排除trunk/code/proj1/doc/我想保留的路径.

ignore-paths = ^(doc|misc)
Run Code Online (Sandbox Code Playgroud)

不起作用 - doc并且misc被初始git svn fetch命令拉入.我如何获得一个正常工作的正则表达式,它只会匹配根目录这样的目录?手册页没有说明是否ignore-paths与最终位于git clone(doc等等)根目录的"相对"路径或SVN远程(branches/b1/doc例如)中看到的"完整"路径匹配,或者是什么其他.

regex git ignore git-svn

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

如何从git中的"索引中的无序阶段条目"错误中恢复

我刚刚升级我git2.0.52.3.6,我现在无法运行git svn fetch在我的库之一:

$ git svn fetch
fatal: unordered stage entries in index
write-tree: command returned error: 128
Run Code Online (Sandbox Code Playgroud)

git status 显示一些未跟踪的文件,但其他方面是干净的.

我找到了引入此检查的更改,其中包含摘要" read_index_from():在读取索引文件时捕获无序条目 "(首先出现2.2.0),以及一些邮件列表讨论,其中包括:

我想我们一直在讨论如何保护其他人写的工具留下的破坏索引文件,所以如果我们当前的工具集不能让你重新创建某些破坏,我也不会感到惊讶;-)

我不记得在这个回购上运行任何其他工具; 除了一系列的git svn fetches 之外,它并没有做太多的日常工作.(但它已经存在了几年,所以谁知道.)

无论如何,我可以做些什么来从这种情况中恢复?我试图找到一个像这样的多个索引条目的路径,但没有得到任何结果:

$ git ls-files -s | cut -f 2-100 | sort | uniq -c | grep -v '^[ \t]*1 '
Run Code Online (Sandbox Code Playgroud)

git git-svn

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

找到任意大数的算法

这是我一直在考虑的事情:假设你有一个数字,x,可以是无限大,你必须找出它是什么.所有你知道的是,如果另一个数字y大于或小于x.找到x的最快/最好的方法是什么?

一个邪恶的对手选择了一个非常大的数字......说:

int x = 9^9^9^9^9^9^9^9^9^9^9^9^9^9^9
Run Code Online (Sandbox Code Playgroud)

并提供isX,isBiggerThanXisSmallerThanx功能.示例代码可能如下所示:

int c = 2
int y = 2
while(true)
    if isX(y) return true
    if(isBiggerThanX(y)) fn()
    else y = y^c
Run Code Online (Sandbox Code Playgroud)

其中fn()一个函数是,一旦找到数字y(大于x)就会确定x(比如将数字除以一半并进行比较,然后重复).问题是,因为x是任意大的,所以使用常数来增加y似乎是个坏主意.

这只是我一直想知道的事情,我想听听其他人的想法

algorithm

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

如何通过JNLP传递其值可能更改为已签名的Java RIA(applet,webstart)的任意系统属性?

由于严格的安全限制7u51,在一月份到期,我想我签字JNLP文件.

我们的应用程序需要设置某些自定义系统属性,其中一些属性的值会根据applet的部署位置而有所不同.我想避免为每个部署重新签名包含JNLP模板的JAR.

放入<property name="my-prop" value="*"/>JNLP模板的天真方法不起作用.

即使<property name="my-prop" value="fixed-value"/>在模板中,我有时会得到一个对话框,说"此应用程序将执行不安全的操作.你想继续吗?":

不安全的操作安全对话框

将系统属性传递给签名的Java RIA的正确方法是什么?

java jnlp applet java-web-start signed-applet

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