通常,在编程中我们会遇到null检查显示特别大的情况.我说的是:
if (doc != null)
{
if (doc.Element != null)
{
... and so on
}
else
throw new Exception("Element cannot be null");
} else {
throw new Exception("document cannot be null");
}
Run Code Online (Sandbox Code Playgroud)
基本上,整个事情变成了一个难以理解的噩梦,所以我想知道:有没有更简单的方法来描述我上面要做的事情?(除了空检查,我string.IsNullOrEmpty不时会得到类似的东西.)
接受的答案:我接受了具有此链接的答案,因为所描述的方法具有创新性,正是我想要的.谢谢肖恩!
我认为最好在示例程序代码中显示以下情况.我有一个扩展的Java类JPanel.在这个类中有两个对象,还有两个JPanels.其中一个JPanel对象是一个JTable对象.我添加了一个侦听器来JTable检测双击.当它检测到双击时,我想在顶级类中触发一个方法.如何在Java中引用此方法?
public class TopPanel extends JPanel {
JPanel OnePanel;
JPanel TwoPanel;
public void MethodToFire;
}
public class OnePanel extends JPanel {
JTable TheTable;
}
public class TheTable extends JTable {
public TheTable {
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if (e.getClickCount() == 2){ SYNTAX CALLING THE METHOD IN TopPanel }
}
} );
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个想法,可以在iPod上运行一个简单的应用程序.我是一名经验丰富的程序员,但没有iPod或任何Mac或Apple操作系统的经验.在使用PC作为开发平台开始开发的硬件和软件方面,有哪些基本要素?PC需要运行Linux吗?
是的,我确实理解它们之间的区别.我想知道的是:为什么OVERRIDE一个方法?这样做有什么好处?在超载的情况下:唯一的优点是你不必用不同的名称思考功能?
当只有邪恶的数据集和微软应用程序块时,层之间的传输对象将是数据集/数据表或DTO/POCO.我属于喜欢使用DTO/POCO的团伙.
现在有了SubSonic,Entity Framework,NHibernate等映射层的突然波动,我还应该使用我最喜欢的POCO吗?我主要这样做,当使用ASP.net webforms 99%时,最终使用ObjectDataSource绑定到控件和特定于每种类型的功能.
我是否应该放弃对POCO的这种爱,并传递IQueryables或Entities或类似的东西并利用其他DataSource对象?
使用这些对象而不是DTO的优点和缺点是什么?它将如何影响我的应用程序设计和性能?
编辑:我什么时候可以使用其他数据源,如Linq Datasorce和Entity数据源等?
我有一个命令行应用程序连续输出以下形式的YAML数据:
- col0: datum0 col1: datum1 col2: datum2 - col0: datum0 col1: datum1 col2: datum2 ...
它永远都是这样做的.我想写一个Python脚本,不断读取每个记录.
PyYAML库似乎最擅长于完全加载的字符串并将它们解释为完整的YAML文档.有没有办法将PyYAML置于"流媒体"模式?
或者我自己选择将数据分块并一点一点地输入PyYAML?
我有一个SOAP请求,已知可以使用像SoapUI这样的工具,但我试图使用urllib来使其工作.
这是我到目前为止尝试过的,它不起作用:
import urllib
f = "".join(open("ws_request_that_works_in_soapui", "r").readlines())
urllib.urlopen('http://url.com/to/Router?wsdl', f)
Run Code Online (Sandbox Code Playgroud)
我无法找到关于如何将文档发布到SOAP服务器的规范.
urllib不是必需的.
.net框架在Math类中提供了一个为double提供动力的方法.但是根据精度要求,我需要将小数提高到十进制幂[Pow(十进制a,十进制b)].框架是否具有这样的功能?有没有人知道有这种功能的图书馆?
我的网站上有一个显示表的网页,每隔10秒重新加载XML源数据(使用XmlHttpRequest),然后更新表以向用户显示数据的任何添加或删除.为此,JavaScript函数首先清除表中的所有元素,然后为每个数据单元添加一个新行.
最近,我通过这个DOM破坏和创建代码导致了Internet Explorer中的大量内存泄漏(大多数代码都与JavaScript对象和DOM对象之间的循环引用有关,而我们正在使用的JavaScript库静静地保存引用每个创建的JS对象,new Element(...)直到页面被卸载).
随着内存问题的解决,我们现在发现了一个基于CPU的问题:当用户需要查看大量数据时(100多个数据单元,相当于<tr>要创建的100个节点,以及每个单元的所有表格单元格)列),该进程占用CPU,直到Internet Explorer提示用户:
停止运行此脚本?
此页面上的脚本导致Internet Explorer运行缓慢.如果它继续运行,您的计算机可能会无响应.
似乎运行行和单元创建代码超过100多个数据是导致CPU使用率飙升的原因,这个函数需要"太长时间"(从IE的角度来看)才能运行,从而导致IE生成这个警告给用户.我还注意到,虽然"更新屏幕"功能运行100行,但IE不会重新呈现表内容,直到函数完成(因为JS解释器在该时间段内使用100%CPU,我假设) .
所以我的问题是:在JavaScript中是否有任何方法告诉浏览器暂停JS执行并重新呈现DOM?如果没有,是否有任何处理创建大量DOM节点和没有浏览器阻塞的策略?
我能想到的一种方法是异步处理"更新表"逻辑; 也就是说,一旦完成重新加载XML数据的Ajax方法,将数据放入某种数组,然后设置一个函数(使用setInterval())来运行,它将一次处理一个数组元素.然而,这似乎有点像在JavaScript环境中重新创建线程,这看起来可能变得非常复杂(即,如果在我仍然重新创建表的DOM节点时,另一个Ajax数据请求会发生什么?等等)
更新:只想解释为什么我接受RoBurg的答案.在做一些测试时,我发现new Element()我的框架中的方法(我使用的是mootools)大约document.createElement()是IE7中传统方法的2倍.我运行了一个测试来创建1000 <spans>并将它们添加到一个<div>,new Element()在IE7上运行大约1800ms(在Virtual PC上运行),传统方法大约需要800ms.
我的测试还揭示了一种更快的方法,至少对于像我这样的简单测试:使用John Resig所描述的DocumentFragments.使用IE7在同一台机器上运行相同的测试需要247毫秒,比我原来的方法提高了9倍!
在Perl中解析Excel文件最简单的方法是什么?将其转换为文本文件也可以.
.net ×2
c# ×2
python ×2
ajax ×1
bigdecimal ×1
c++ ×1
class ×1
cocoa ×1
cocoa-touch ×1
command-line ×1
decimal ×1
dom ×1
excel ×1
iphone ×1
ipod-touch ×1
java ×1
javascript ×1
methods ×1
orm ×1
overloading ×1
overriding ×1
parsing ×1
perl ×1
soap ×1
streaming ×1
yaml ×1