程序设计

专业和发烧友程序员的问答


4
显式调用Java中的默认方法
Java 8引入了默认方法,以提供扩展接口的功能,而无需修改现有的实现。 我想知道当由于不同接口中的默认实现冲突而导致该方法的默认实现被重写或不可用时,是否可以显式调用该方法的默认实现。 interface A { default void foo() { System.out.println("A.foo"); } } class B implements A { @Override public void foo() { System.out.println("B.foo"); } public void afoo() { // how to invoke A.foo() here? } } 考虑上面的代码,您将如何A.foo()从B类的方法调用?


2
函数声明语法:函数名称前括号内的内容
抱歉,我无法在问题标题中更加具体,但是我正在阅读一些Go代码,并且遇到了这种形式的函数声明: func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { ... } 来自https://github.com/mattermost/platform/blob/master/api/context.go func (s *GracefulServer) BlockingClose() bool { ... } 来自https://github.com/braintree/manners/blob/master/server.go 什么是(h handler)与(s *GracefulServer)括号平均值之间?考虑到括号之间事物的含义,整个函数声明是什么意思? 编辑 这与Go中的功能和方法有何不同?:之所以问这个问题,是因为我不知道函数名之前括号中的内容是什么,不是因为我想知道函数和方法之间的区别是什么...如果我知道此声明是一个方法,我不会首先没有这个问题。如果有一天有人和我有同样的疑问,我不相信她会去寻找“ golang方法”,因为她不知道这种情况。这就像想知道字母“ sigma”在数学表达式之前是什么意思(不知道它表示求和),并且有人说这是求和与其他事物之间的区别的重复。 同样,对这个问题的简短回答(“它是一个接收者”)并不是对“函数和方法之间的区别”的回答。
247 go 

28
TypeScript编译中的实验装饰器警告
我收到警告... 对装饰器的实验支持是一项功能,将来的版本中可能会对其进行更改。设置'experimentalDecorators'选项`以消除此警告。 ...即使我的tsconfig.json中的editorOptions具有以下设置: "emitDecoratorMetadata": true, "experimentalDecorators": true, 奇怪的是,某些使用装饰器的随机类没有显示该警告,而同一项目中的其余类却显示了该警告。 是什么导致TypeScript编译器中的此类行为?

22
如何处理ASP.NET MVC表单中的复选框?
警告:这个问题已有九年历史了! 最好的选择是搜索较新的问题,或者搜索下面的答案以查找您的MVC的特定版本,因为此处的许多答案已经过时了。 如果找到适合您版本的答案,请确保答案包含您正在使用的MVC的版本。 (原始问题从下面开始) 对我来说,这似乎有些奇怪,但是据我所知,这就是您的做法。 我有一组对象,希望用户选择其中一个或多个。这对我来说是“带有复选框的表格”。我的对象没有“选择”的任何概念(它们是通过反序列化wcf调用而形成的基本POCO)。因此,我执行以下操作: public class SampleObject{ public Guid Id {get;set;} public string Name {get;set;} } 在视图中: <% using (Html.BeginForm()) { %> <%foreach (var o in ViewData.Model) {%> <%=Html.CheckBox(o.Id)%> <%= o.Name %> <%}%> <input type="submit" value="Submit" /> <%}%> 而且,在控制器中,这是查看用户检查哪些对象的唯一方法: public ActionResult ThisLooksWeird(FormCollection result) { var winnars = from x …

11
初次数据库设计:我是否过度设计?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 背景 我是CS大学一年级的学生,我做兼职工作是我父亲的小生意。我没有在现实世界中进行应用程序开发的经验。我用Python编写了脚本,用C编写了一些课程,但没有这样的东西。 我父亲的培训业务不多,目前所有课程都通过外部网络应用程序进行计划,记录和跟进。有导出/“报告”功能,但是它非常通用,我们需要特定的报告。我们无权访问实际数据库来运行查询。我被要求设置一个自定义报告系统。 我的想法是创建通用的CSV导出,并将其导入(可能是使用Python)(每天晚上)到办公室中托管的MySQL数据库中,从那里我可以运行所需的特定查询。我没有数据库方面的经验,但了解非常基础的知识。我已经阅读了一些有关数据库创建和常规表单的信息。 我们可能很快就会有国际客户,因此如果发生这种情况,我希望数据库不会爆炸。我们目前也有几个大公司作为客户,分别设有不同的部门(例如ACME母公司,ACME医疗保健部门,ACME身体护理部门) 我提出的架构如下: 从客户的角度来看: 客户是主表 客户链接到他们工作的部门 部门可以分散在一个国家/地区:伦敦的HR,斯旺西的市场营销等。 部门与公司的部门联系在一起 部门链接到母公司 从类的角度来看: 会话是主表 老师链接到每个会话 每个会话均会获得一个statusid。例如0-已完成,1-已取消 会话被分组为任意大小的“包” 每个包装都分配给一个客户 我在一张纸上“设计”(更像是乱涂乱画)该架构,试图使其标准化为第三种形式。然后我把电源插头插上到MySQL Workbench和它使人们都非常适合我:(点击查看全尺寸图片) (来源:maian.org) 我将要运行的示例查询 哪些客户的信用额仍处于闲置状态(将来未安排课程的客户) 每个客户/部门/部门的出勤率是多少(由每个会话中的状态ID衡量) 一个月一个老师上了几节课 标记出勤率低的客户 针对人力资源部门的自定义报告以及部门人员的出勤率 问题 这是工程过度还是我朝着正确的方向前进? 对于大多数查询,需要联接多个表是否会对性能造成重大影响? 我已经向客户端添加了一个“ lastsession”列,因为它可能将是一个常见的查询。这是个好主意还是应该严格规范化数据库? 谢谢你的时间

17
警告:mysql_connect():[2002]在以下目录中没有这样的文件或目录(试图通过unix:///tmp/mysql.sock进行连接)
我正在尝试使用Apple上的Terminal(使用PHP)连接到MySQL数据库。 昨天工作正常,现在突然出现标题错误。 当我使用浏览器运行该脚本(安装了XAMPP)时,该脚本有效,但是Terminal拒绝连接至数据库。 这是我要连接的文件(当我不包含该文件时,脚本便起作用了,但随后它没有连接至数据库): <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("FNB1C_data") or die(mysql_error()); ?> 应该可以,因为它可以与我的浏览器一起使用。 我在终端上使用的命令是php scriptname.php。
246 php  mysql  database 

30
在JavaScript中检测IE版本(v9之前的版本)
如果他们使用的是Internet Explorerv9之前的版本,我想将我们网站的用户退回至错误页面。只是不值得我们花费时间和金钱来支持IE pre-v9。使用其他所有非IE浏览器的用户都可以使用,并且不应被退回。这是建议的代码: if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE var badBrowser=( navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too ); if(badBrowser){ // navigate to error page } } 这段代码会成功吗? 拒绝一些可能会以我的方式发表的评论: 是的,我知道用户可以伪造useragent字符串。我不担心 是的,我知道编程专家更喜欢嗅探功能支持而不是浏览器类型,但在这种情况下,我认为这种方法不可行。我已经知道所有(相关)非IE浏览器都支持我需要的功能,而所有pre-v9 IE浏览器都不支持。在整个站点中逐个功能地检查将是浪费。 是的,我知道有人尝试使用IE v1(或> = 20)访问该网站不会将'badBrowser'设置为true,并且警告页面也无法正确显示。这是我们愿意承担的风险。 是的,我知道Microsoft具有可用于精确浏览器版本检测的“条件注释”。从IE开始,IE不再支持条件注释IE 10,从而使该方法绝对无用。 还有其他明显的问题要注意吗?

18
如何在iOS上获取设备品牌和型号?
我想知道是否有可能确定当前设备是哪种iPhone(例如)?我知道是否可以通过 NSString *deviceType = [[UIDevice currentDevice] model]; 该模型返回是否拥有“ iPhone”或“ iPod”,但是我想知道是否可以检测/知道我是否拥有iPhone 3GS和iPhone 4。 iPhone 4S (实际上,我真正想做的就是确定我是否拥有3G,因为我正在做大量图形处理工作)。 是的,让我知道,谢谢!
246 ios  objective-c  iphone  ipad 


25
每个优秀的.NET开发人员都应该回答的问题吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我的公司即将雇用.NET开发人员。我们在各种.NET平台上工作:ASP.NET,Compact Framework,Windowsforms,Web Services。我想汇编一个好的问题清单/目录,这是一种最低标准,以查看申请人是否有经验。所以,我的问题是: 您认为一个好的.NET程序员应该回答什么问题? 我也将其视为自己的核对清单,以便查看自己的不足之处(有很多...)。 *更新:它想表明我们不仅在测试.NET知识,而且解决问题的能力和一般的编程技能对我们来说更加重要。
246 .net 

10
三元运算符的速度是if-else块的两倍吗?
我到处都读到,三元运算符应该比其等效的if- else块更快,或至少相同。 但是,我进行了以下测试,发现情况并非如此: Random r = new Random(); int[] array = new int[20000000]; for(int i = 0; i < array.Length; i++) { array[i] = r.Next(int.MinValue, int.MaxValue); } Array.Sort(array); long value = 0; DateTime begin = DateTime.UtcNow; foreach (int i in array) { if (i > 0) { value += 2; …

3
无需递归查找
是否可以find某种方式使用该命令,而该命令不会递归到子目录中?例如, DirsRoot |-->SubDir1 | |-OtherFile1 |-->SubDir2 | |-OtherFile2 |-File1 |-File2 而类似的结果find DirsRoot --donotrecuourse -type f只会是File1, File2?
246 unix  find  shell 

10
使用Number对象保存属性并递增数字的这段代码中发生了什么?
最近的一条推文包含此JavaScript代码段。 有人可以一步一步解释它发生了什么吗? > function dis() { return this } undefined > five = dis.call(5) Number {[[PrimitiveValue]]: 5} > five.wtf = 'potato' "potato" > five.wtf "potato" > five * 5 25 > five.wtf "potato" > five++ 5 > five.wtf undefined > five.wtf = 'potato?' "potato?" > five.wtf undefined > five 6 …
246 javascript 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.