小编ton*_*edz的帖子

为什么Java Map不扩展Collection?

我对这Map<?,?>不是一个事实感到惊讶Collection<?>.

我认为如果宣布这样的话会有很多意义:

public interface Map<K,V> extends Collection<Map.Entry<K,V>>
Run Code Online (Sandbox Code Playgroud)

毕竟,一个Map<K,V>是集合Map.Entry<K,V>,不是吗?

那么为什么没有这样实现呢?


感谢Cletus提供了最权威的答案,但我仍然想知道为什么,如果您已经可以查看Map<K,V>as Set<Map.Entries<K,V>>(via entrySet()),它不仅仅是扩展该界面.

如果a Map是a Collection,那么元素是什么?唯一合理的答案是"键值对"

确切地说,interface Map<K,V> extends Set<Map.Entry<K,V>>会很棒!

但这提供了非常有限(并且不是特别有用)的Map抽象.

但如果是这种情况那么为什么entrySet界面指定?它必须以某种方式有用(我认为这个位置很容易争论!).

您不能询问给定键映射到的值,也不能删除给定键的条目而不知道它映射到的值.

我不是说这就是它的全部内容Map!它可以而且应该保留所有其他方法(除了entrySet现在多余的方法)!

java oop collections

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

为什么以及如何([![]] + [] [[]])[+!+ [] + [+ []]]评估为字母"i"?

在阅读dzone上发布的这篇文章时,我发现了一段最初由Marcus Lagergren在Twitter上发布的JavaScript片段.

以下代码显然打印字符串 "fail"

(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]];
Run Code Online (Sandbox Code Playgroud)

这涉及隐式类型转换,我试图理解这条线的解释方式.

我已经隔离了每个角色

  • (![]+[])[+[]] 版画 "f"
  • (![]+[])[+!+[]] 版画 "a"
  • ([![]]+[][[]])[+!+[]+[+[]]] 版画 "i"
  • (![]+[])[!+[]+!+[]] 版画 "l"

我还设法打破了每个字母除外的表达式 "i"

信件 "f"

![]空数组是一个对象,它根据ECMAScript的文档,点9.2的计算结果为true当转换为一个boolean,所以这是false

false+[]根据Point 11.6.1,二元+运算符的两个参数都转换为String,因此我们得到"false"+"",它进行求值"false"

+[]如果参数是a,则一元加号运算符会导致ToNumber转换,然后ToPrimitive转换Object.通过调用[[DefaultValue]]对象的内部方法来确定这种转换的结果.如果是空数组,则默认为0.(ECMAScript的文档,章节:11.4.6,9.3,9.1)

"false"[0]我们正在访问索引处的字符0,因此"f"

信件 "a"

同样的故事,这里唯一的区别是方括号中的部分中的额外转换(其计算为指向字符串中另一个字符的数字"false"),由使用一元+!运算符触发.

+[]0 …

javascript obfuscation types ecmascript-5

41
推荐指数
1
解决办法
2408
查看次数

Git忽略本地文件更改

我试过了两个

git update-index --assume-unchanged config/myconfig
Run Code Online (Sandbox Code Playgroud)

编辑.git/info/exclude和添加config/myconfig

但是,当我做git pull时,我总是得到:

更新0156abc..1cfd6a5错误:对以下文件的本地更改将被merge覆盖:config/myconfig请在提交之前提交更改或存储它们,然后才能合并.中止

我错过了什么?

git

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

如何从与Jersey的多部分表单中读取具有相同名称的多个(文件)输入?

我已经成功开发了一项服务,我在其中阅读在泽西岛以多部分形式上传的文件.这是我一直在做的非常简化的版本:

@POST
@Path("FileCollection")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@FormDataParam("file") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail) throws IOException {
    //handle the file
}
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但我得到了一个新的要求.除了我上传的文件外,我还要处理任意数量的资源.我们假设这些是图像文件.

我想我只是为客户端提供一个表单,其中包含一个文件输入,一个输入用于第一个图像,一个按钮允许向表单添加更多输入(使用AJAX或简单的JavaScript).

<form action="blahblahblah" method="post" enctype="multipart/form-data">
   <input type="file" name="file" />
   <input type="file" name="image" />
   <input type="button" value="add another image" />
   <input type="submit"  />
</form>
Run Code Online (Sandbox Code Playgroud)

因此,用户可以为表单添加更多图像输入,如下所示:

<form action="blahblahblah" method="post" enctype="multipart/form-data">
   <input type="file" name="file" />
   <input type="file" name="image" />
   <input type="file" name="image" />
   <input type="file" name="image" />
   <input type="button" value="add another image" />
   <input type="submit"  />
</form>
Run Code Online (Sandbox Code Playgroud)

我希望阅读与集合同名的字段非常简单.我在MVC .NET中使用文本输入成功完成了它,我认为在Jersey中不会更难.事实证明我错了.

找不到关于这个主题的教程,我开始尝试.

为了看看如何做到这一点,我把问题简化为简单的文本输入.

<form action="blahblabhblah" …
Run Code Online (Sandbox Code Playgroud)

java forms jax-rs multipart jersey

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

join和CountDownLatch有什么区别?

在等待其他线程完成时,我们可以使用join或者CountdownLatch.使用这两种机制中的任何一种的利弊是什么?

java multithreading countdownlatch

22
推荐指数
4
解决办法
7338
查看次数

Android系统颜色常量

Android编程让我发疯.用于GUI开发的XML或可编程方式正在制作正确的老狗早餐代码 - 这里有些东西,有些东西.

我目前的挫败感是试图保留所有XML,我想设置与a的背景颜色TextView相同颜色的背景颜色,Button而不必指定确切的颜色代码.我想使用系统常量,类似于java.awt.SystemColor.control,但在XML中指定.

无论如何这样做而不必重新指定一堆东西?我正在寻找一个解决方案:android:background="{Insert constant here}".

android styles

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

Restful API - 处理大量数据

我编写了自己的Restful API,并且想知道处理从API返回的大量记录的最佳方法.

例如,如果我使用GET方法,myapi.co.uk/messages/将为所有消息记录带回XML,在某些情况下可能是1000.这使得使用API​​非常迟缓.

任何人都可以建议处理这个问题的最佳方法吗?是批量返回结果并在请求中指定批量大小的标准吗?

api rest web-services

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

如何选择不同级别的多个节点?

拥有这个(简化的)XML:

<?xml version="1.0" encoding="UTF-8"?>
<kml>
<Document>
        <Placemark>
            <name>Poly 1</name>
            <Polygon>
                        <coordinates>
                            -58.40844625779582,-34.60295278618136,0
                        </coordinates>
            </Polygon>
        </Placemark>
        <Placemark>
            <name>Poly 2</name>
            <Polygon>
                        <coordinates>
                            -58.40414334150432,-34.59992445476809,0
                        </coordinates>
            </Polygon>
        </Placemark>
</Document>
</kml>
Run Code Online (Sandbox Code Playgroud)

如何选择每个地标的名称和坐标?现在我可以使用以下XPath表达式选择他们的名字:

//Document//Placemark//name
Run Code Online (Sandbox Code Playgroud)

如何在没有任何其他数据的情况下选择两者?

xml xpath xml-parsing

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

修复Windows 7中的环境变量中的"PATH"以用于多个应用程序

使用JDK后,如果我使用ruby,我必须在Windows7中更改环境变量中的"PATH".即使我使用多个应用程序,我是否有必要继续改变它?

ruby java windows environment-variables

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

是否可以禁用textarea的多行选项?

当然,我可以使用标准的html文本框,但出于某种原因我需要文本区域.

那么,是否可以禁用textarea的多行选项?

html textarea

14
推荐指数
4
解决办法
4万
查看次数