Java 8最有用的功能之一是default接口上的新方法.基本上有两个原因(可能还有其他原因)为什么会被引入:
Iterator.remove()Iterable.forEach()从API设计者的角度来看,我希望能够在接口方法上使用其他修饰符,例如final.在添加便捷方法时,这将非常有用,可防止在实现类时出现"意外"覆盖:
interface Sender {
// Convenience method to send an empty message
default final void send() {
send(null);
}
// Implementations should only implement this method
void send(String message);
}
Run Code Online (Sandbox Code Playgroud)
如果Sender是一个类,上面已经是常见的做法:
abstract class Sender {
// Convenience method to send an empty message
final void send() {
send(null);
}
// Implementations should only implement this method
abstract void send(String message);
}
Run Code Online (Sandbox Code Playgroud)
现在,default并final有明显矛盾的关键字,但默认关键字本身不会一直严格要求 …
我试图在我的ASP.NET MVC 1项目中使用HTML5数据属性.(我是C#和ASP.NET MVC的新手.)
<%= Html.ActionLink("« Previous", "Search",
new { keyword = Model.Keyword, page = Model.currPage - 1},
new { @class = "prev", data-details = "Some Details" })%>
Run Code Online (Sandbox Code Playgroud)
上面的htmlAttributes中的"data-details"给出以下错误:
CS0746: Invalid anonymous type member declarator. Anonymous type members
must be declared with a member assignment, simple name or member access.
Run Code Online (Sandbox Code Playgroud)
它在我使用data_details时有效,但我想它需要按照规范以"data-"开头.
我的问题:
我的存储库中有一些文件应该被忽略,我将它们添加到.gitignore中,当然,它们不会从我的存储库中删除.
所以我的问题是,是否有一个使用filter-branch的魔术命令或脚本可以重写我的历史记录并轻松删除所有这些文件?或者只是一个命令,它将创建一个将删除它们的提交?
在给函数提供原始变量时,最好的做法是:
unsigned long x = 4;
void func1(unsigned long& val) {
val = 5;
}
func1(x);
Run Code Online (Sandbox Code Playgroud)
要么:
void func2(unsigned long* val) {
*val = 5;
}
func2(&x);
Run Code Online (Sandbox Code Playgroud)
IOW:有没有理由选择一个而不是另一个?
我一直在与一小群人一起开展编码项目,以获得乐趣.这是一个有组织,相当有凝聚力的团体.我与之合作的人都拥有与编程相关的各种技能,但其中一些使用较旧的或完全错误的方法,例如过多的全局变量,较差的命名约定等.虽然事情有效,但执行情况很差.礼貌地询问或介绍他们使用更好的方法,而不是质疑(或侮辱)他们的经验和/或教育的方法是什么?
我已经看到网页中不时使用以下href.但是,我不明白这是尝试做什么或技术.有人可以详细说明吗?
<a href="javascript:;"></a>
Run Code Online (Sandbox Code Playgroud) 我们开始在项目中更多地使用GWT,GWT编译器的性能变得越来越烦人.
我们将开始改变我们的工作实践来缓解这个问题,包括更加强调托管模式浏览器,这推迟了以后运行GWT编译器的需要,但这带来了自己的风险,特别是直到比我们想要的要晚得多,才能解决真正的浏览器问题.
理想情况下,我们想让GWT编译器本身更快 - 编译一个相当小的应用程序需要一分钟时间.但是,我们正在使用编译,如果一个相当天真的方式,所以我希望我们可以做一些快速和简单的收益.
我们目前正在从ant Ant目标调用com.google.gwt.dev.Compiler作为java应用程序,最大堆容量为256m,堆栈空间很大.Ant使用fork = true和最新的Java 6 JRE来启动编译器,以尝试利用Java6的改进性能.我们将主控制器类与应用程序类路径一起传递给编译器,然后关闭它.
我们还能做些什么来获得额外的速度?我们能否提供更多信息,以便花更少的时间来发现该怎么做?
我知道我们可以告诉它只为一个浏览器编译,但我们需要进行多浏览器测试,所以这不太实用.
此时欢迎所有建议.
比较两个大型(> 50.000个项目)的最快(和最少资源密集型)是什么,因此有两个列表,如下所示:
目前我正在使用List或IReadOnlyCollection并在linq查询中解决此问题:
var list1 = list.Where(i => !list2.Contains(i)).ToList();
var list2 = list2.Where(i => !list.Contains(i)).ToList();
Run Code Online (Sandbox Code Playgroud)
但这并不像我想的那样好.因为我需要处理很多列表,所以想要更快,更少资源吗?
如何在不触及命令行的情况下在SourceTree中编辑不正确的提交消息?
额外细节:
结果:
c++ ×2
git ×2
java ×2
asp.net-mvc ×1
blogs ×1
c# ×1
coding-style ×1
gitignore ×1
gwt ×1
html5 ×1
ignore ×1
java-8 ×1
javascript ×1
jsr335 ×1
linq ×1
list ×1
performance ×1
pointers ×1
reference ×1
variables ×1