小编maa*_*nus的帖子

Eclipse将新打开的编辑器选项卡放在当前活动的选项卡旁边?

是否可以让Eclipse将新打开的编辑器选项卡放在当前活动的选项卡旁边?

在选项卡行已满之前,eclipse将新选项卡放在第一个空闲位置,这是可以接受的.当行变满时,eclipse选择隐藏LRU选项卡,这也是可以接受的.但是它将新标签放置在以这种方式释放的位置上,这是从用户的POV中完全随机的位置.非常奇怪,恕我直言.

举个例子,以防万一我的英语比我差!

初始位置,假设b是LRU且D有效,打开G:
a b c D e f

目前的行为:
a G c D e f

通缉行为:
a c D G e f

eclipse editor

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

更好的正则表达式语法思想

我需要一些帮助才能完成关于正则表达式的想法.

介绍

关于SE上正则表达式的更好语法有一个问题,但我认为我不会使用流畅的语法.这对新手来说肯定不错,但是如果是复杂的正则表达式,你会用一整页稍微好一点的胡言乱语来代替一行乱码.我喜欢Martin Fowler方法,其中正则表达式由较小的部分组成.他的解决方案是可读的,但手工制作; 他提出了一种聪明的方法来构建复杂的正则表达式而不是支持它的类.

我正试图用类似的东西来上课(首先看他的例子)

final MyPattern pattern = MyPattern.builder()
.caseInsensitive()
.define("numberOfPoints", "\\d+")
.define("numberOfNights", "\\d+")
.define("hotelName", ".*")
.define(' ', "\\s+")
.build("score `numberOfPoints` for `numberOfNights` nights? at `hotelName`");

MyMatcher m = pattern.matcher("Score 400 FOR 2 nights at Minas Tirith Airport");
System.out.println(m.group("numberOfPoints")); // prints 400
Run Code Online (Sandbox Code Playgroud)

其中fluent语法用于组合扩展的regex,如下所示:

  • 定义命名模式并通过封闭反引号来使用它们
    • `name` 创建一个命名组
      • 助记符:shell捕获反引号中包含的命令的结果
    • `:name` 创建一个非捕获组
      • 助记符:类似于(?:......)
    • `-name` 创建一个反向引用
      • 助记符:短划线将其连接到上一个匹配项
  • 除非引用,否则重新定义个别角色并在任何地方使用它
    • 这里只允许一些字符(例如~ @#%")"
      • 重新定义+(将是非常混乱,所以这是不允许的
      • 在上面的例子中,重新定义空间意味着任何间距是非常自然的
      • 重新定义一个角色可以使图案更紧凑,除非过度使用,这是好的
      • 例如,使用类似define('#', …

java regex fluent

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

如何防止Eclipse导入嵌套类?

每当我使用嵌套类时,我给它们的名称不包括外部类名,例如, MySomething.Kind而不是MySomething.MySomethingKind.嵌套类有时对外部可见,然后我想总是通过封闭类限定的名称来引用它们,即,MySomething.Kind而不仅仅是Kind.有时候有多个类包含嵌套Kind,因此使用非限定名称可能会造成混淆.

有没有办法阻止Eclipse不必要地导入mypackage.MySomething.Kind而不是使用(已经导入)mypackage.MySomething半限定名称?

更新:

这不是自发发生的.正如jprete所述,当我总是使用半限定名时,嵌套类不会被导入.但是,任何创建类型变量的重构都只MySomething.Kind声明它Kind并添加不需要的import语句.这会将重构变为无用,因为我必须手动编辑它.每当我忘记时,我都会遇到最糟糕的情况:不合格和半合格的名字.

java eclipse import

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

在java正则表达式中捕获组的行为混淆

在这个答案我推荐使用

s.replaceFirst("\\.0*$|(\\.\\d*?)0+$", "$1");
Run Code Online (Sandbox Code Playgroud)

但有两个人抱怨结果包含字符串"null",例如23.null.这可以通过$1(即group(1))存在来解释null,可以将其转换String.valueOf为字符串"null".但是,我总是得到空字符串.我的测试用例涵盖了它

assertEquals("23", removeTrailingZeros("23.00"));
Run Code Online (Sandbox Code Playgroud)

经过.确切的行为是否未定义?

java regex replace

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

如何在不触及未更改的文件的情况下替换Perl中现有文件中的字符串

运用

perl -pi -e 's/pattern/replacement/g' $(find src -type f)
Run Code Online (Sandbox Code Playgroud)

很好,除了一件事:所有文件都被覆盖,即使没有任何匹配.这并不好,因为我经常在Emacs或Eclipse中打开它们,然后问我无聊的问题.有一种简单的方法可以防止触摸未更改的文件(在查找中使用grep的东西太多了,特别是对于复杂的模式).

perl file

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

什么是注释#annotationType()适合?

接口Annotation指定方法

Class<? extends Annotation> annotationType()
Run Code Online (Sandbox Code Playgroud)

其中包含零信息1 javadoc.我不知道它有什么好处.所有我能找到的都是这个问题,但实际上并不需要它(因为在接受的一个下面的两个顶部答案显示).


它允许我们使用

a.annotationType().equals(MyAnnotation.class)
Run Code Online (Sandbox Code Playgroud)

a instanceof MyAnnotation
Run Code Online (Sandbox Code Playgroud)

做同样的工作......除非a是一个实现多个注释的类的实例 - 但是有没有人见过这样的野兽?

如果a是一个实例class A implements MyAnnotation, YourAnnotation,那么上面的两个测试不是等价的,但问题是哪一个更好......

(*)就像说getX()回报一样x.

java annotations

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

防止垃圾邮件历史记录中的搜索更改

我正在使用类似的链接#!/OrderList?id=123,它显示所有订单的列表和订单123的更多细节.使用reloadOnSearch=false和观看$routeUpdate它工作正常,除了一件事:所有这些链接都被放入浏览器历史记录中,而我更喜欢那里只有一个这样的链接.例如,而不是

#!/OrderList?id=123
#!/OrderList?id=124
#!/OrderList?id=125
#!/AnotherList?id=678
#!/AnotherList?id=679
Run Code Online (Sandbox Code Playgroud)

只是每个组的最后一个成员,即

#!/OrderList?id=125
#!/AnotherList?id=679
Run Code Online (Sandbox Code Playgroud)

我知道$location.replace(),但是当通过一个链接发生变化时我无法看到它放在哪里.我试图将它放入$scope.$on("$routeUpdate", ...),但它没有做任何事情,可能是因为当路线已经改变时为时已晚.

我既不使用router-ui也不使用HTML5模式(只是简单angular-route).


我担心,我不清楚我坚持使用href而不是自定义处理程序.我希望链接能够与鼠标中键和书签以及所有内容一起使用.结合ng-href并可ng-click能做我想要的,但我找到了一个使用普通链接的简单解决方案.

routes hyperlink angularjs

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

If-None-Match与多个实体有什么用途?

我正在使用ETag标头进行缓存,浏览器会发送相应的If-None-Match标头.最初,我只是比较了这些标题并且它起作用了.

后来我发现rfc2616允许实体列表,所以我修复了它.问题是,如果修复程序被使用过......

  • 浏览器是否发出If-None-Match包含多个实体的标头的请求?
  • 还有其他现实世界的用途吗?

caching http browser-cache rfc2616

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

使用浏览器缓存进行增量更新

客户端(AngularJS应用程序)从服务器获取相当大的列表.这些列表可能有数百或数千个元素,这可能意味着几兆字节未压缩(并且一些用户(管理员)获得更多数据).

我不打算让客户端得到部分结果,因为排序和过滤不应该打扰服务器.

压缩工作正常(大约10倍),因为列表不经常更改304 NOT MODIFIED,也有很多帮助.但是缺少另一个重要的优化:

由于列表的典型更改相当小(例如,修改两个元素并添加新元素),因此传输更改只是一个好主意.我想知道如何正确地做到这一点.

喜欢的东西GET /offer/123/items应该总是返回所有项目的报价号123,对不对?这里可以使用压缩和304,但没有增量更新.像GET /offer/123/items?since=1495765733听起来像是要走的路,但是浏览器缓存不会被使用:

  • 或者没有任何改变,答案是空的(缓存它是没有意义的)
  • 或者某些东西已经改变了,客户端更新了它的状态,并且从不再要求自1495765733以来的更改(并且缓存它更没意义)

显然,当使用"since"查询时,不会为"资源"缓存任何内容(原始查询只使用一次或根本不使用).

所以我不能依赖浏览器缓存,我只能使用localStorage或者sessionStorage,它有一些缺点:

  • 它被限制在几兆字节(浏览器HTTP缓存可能会更大并自动处理)
  • 当我达到极限时,我必须实施一些替换策略
  • 浏览器缓存存储了我没有得到的压缩数据(我必须重新压缩它们)
  • 它不适用于用户(管理员)获取更大的列表,因为即使单个列表可能已经超出限制
  • 它在注销时被清空(客户的要求)

鉴于HTML 5和HTTP 2.0,这是非常令人不满意的.我错过了什么?

是否可以将浏览器HTTP缓存与增量更新一起使用?

ajax rest caching http single-page-application

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

使 Material-ui 图标更粗

我想使用Material Icons中的块图标显示一个禁用但提供反馈的按钮,就像这个答案一样。不过,它确实有效,当图标更粗时看起来会更好。

我可以使导入的图标看起来更粗吗?我想,修改 SVG 中的画笔宽度就可以了,但不知道该怎么做(特别是,是否可以“从外部”)。

icons reactjs material-ui

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