可能重复:
如何检查String是java中的数字类型
我看到我可以通过使用解析String
成a .double
Double.parseDouble
既然那个人可能会抛出一个NumberFormatException
,而我不想通过异常进行编程,我会犹豫将parseDouble
调用放入try
/ catch
block只是为了检查字符串是否可以解析成a double
.
在Delphi中,有TryParseInt
(我认为),如果字符串无法解析为,则返回一个定义的值(我认为是-1)Integer
.
在Java中没有类似的东西?我的意思是:没有标准的方法可以做到这一点?
我在Flex AIR应用程序中使用开源PurePDF库.问题是性能:
它需要100%的CPU使用率并且太长而无法生成PDF.
我对它做了一些分析,发现用pdf写的文本很昂贵.这就是我需要知道如何提高性能的原因.是否有任何字体的pdf生成成本较低,或者是否有一些设置或提示可以使这个过程在性能方面有所改善?
其次,在图像的情况下,将该元素写入PDF时,ImageElement生成非常昂贵.有没有办法减少处理?
同时,我找到了一种方法来减少ImageElement生成处理,方法是使用flex调整图像大小,然后将小图像的位图数据传递给图像元素.它工作正常,我已经在很大程度上减少了执行时间.有没有人有其他问题的想法?
请帮忙 - 提前谢谢.
带有循环引用的"Fun":
假设我有一个表ELEMENTS,它包含一个由父ID建模的元素层次结构.
对于root,父ID字段为空.
所有其他记录都具有ID
父元素的(autosequenced)主键()的非null父id .
例如,使用
SELECT *
FROM Elements
WHERE FATHER_ID not in (SELECT ID FROM Elements)
Run Code Online (Sandbox Code Playgroud)
我可以找到所有具有无效父引用的元素(FATHER_ID
不是外键,我们假设在这个例子中).
但是,我怎样才能找到具有有效父引用BUT的元素,其父引用链不会以根结尾?我认为这只能发生在循环引用上,例如A是B的父亲,但B也是A的父亲.这样的"子树"没有链接到根,因此不是主树的一部分.我想找到这样的子树.
当然,我正在寻找一个查询来提供那些导致循环引用的元素,无论引用链可能有多长.
这可能在SQL中,还是需要迭代解决方案?
我们说我传递Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")
给一个函数:
MyFunction (Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))
Run Code Online (Sandbox Code Playgroud)
稍后,该函数想要记录所接收的测试对象的逻辑名称(在这种情况下,当然是"MyBox").
怎么会这样呢?
"name"测试对象属性返回重新添加测试对象时生成的名称. 逻辑名称没有(记录的)测试对象属性. 运行时对象属性不可能包含名称,因为它不是AUT GUI中的名称.
所以我认为测试对象不知道它的名字.只有存储库"知道"测试对象存储在哪个名称下.
所以我将不得不检查存储库本身,而不是测试对象.
该ObjectRepositoryUtil
API允许我(通过GetChildren
,或其他方法)来找到repository's测试对象集合中的测试对象,并使用该GetLogicalName
方法来得到它的名字.精细.
但是,使其工作的唯一方法是通过加载来获取对存储库的引用.我得到的印象是,这个API旨在操纵(或分析)来自QTP外部的回购,而不是来自测试运行.我不想重新加载存储库.我想在一个已经加载的存储库中查找测试对象.
该RepositoriesCollection
API可以告诉其加载(通过其名称和路径)我,但它不提供获取的手段引用到对象实例代表的库之一.
那么我怎样才能获得对已经加载的存储库的引用,所以我可以使用GetLogicalName
?
或者通常问:给定对当前操作的共享存储库中包含的"普通"测试对象的引用,如何以编程方式找到其逻辑名称?
如果有一些超明智QTP向导一拉Motti谁知道这能不能做到,我倒是很欣赏来自他一个答案,即使它写着"不能做"如果这是真的.
例如,假设一个测试呼叫两个动作,A和B A执行通过调用"失败"步骤"Reporter.ReportEvent micFail, ...
"和B进行'’通过调用步骤通过"Reporter.ReportEvent micpass, ...
"
Reporter.RunStatus
micFail
在A中执行失败步骤后立即返回.因此,即使在B中,B的状态完全为"绿色",也无法在"B"分支中判断出没有"失败"步骤当下.报告的测试运行状态Reporter.RunStatus
" micFail
从那时开始.
那么我怎样才能获得当前"分支"的运行状态?
我认为我要找的是当前或当前父级Reporter节点的颜色(即运行状态).
在病态的Excel(我使用Office 10)VBA宏中,我需要捕获用户设法创建具有最大列数或行数的工作表的情况.
我不记得是怎么发生的,我也不在乎; 但我们大多数人都看过Excel工作表的有效工作表大小为16384个单元格宽度和/或1048576个单元格高度 - 即使工作表上只有少数非空单元格.
我只想在VBA代码中检测到这种情况.
一个sheet's Rows.Count
和Columns.Count
过程的返回的数字,我可以检查他们是否等于16384
或1048576
分别.
但是,这些限制取决于版本.
所以我的问题是:
如何在不编码依赖于版本的if语句的情况下获取VBA中给定Excel工作表中行数和列数的最大限制?每个限制值可能有一个常量,但我找不到它.
注意我不是在寻找大小Worksheet.UsedRange
.我想确定是否UsedRange
已经扩展到整个可用的"表空间",这通常只是偶然发生,但是 - 它发生了,我想检测那种情况.
我也不是在寻找每个Excel版本的限制.(这很容易谷歌.)我不想硬编码这些值和版本号.
mime的客户端有一个在4D上运行的旧程序.我不熟悉这种格式,但我有4个文件; 一个.4DC,.rsr,.4DD和一个.4DR文件.
我怀疑数据是在.4DD文件中.如何提取数据?
在VB脚本主机中编程(脚本)时,如何了解实现的内容和不实现的内容?
例如,记录(或:structure
关键字)未实现,但类(或:class
关键字)未实现.
Dim as <Type>
不允许使用所有" as
"短语.
您可以在类中创建属性,但也不能创建as
任何类型的属性.
您不能从基类继承(" Inherits
"关键字未知).
等等.
我看到脚本主机是一个脚本主机,所以保持其功能有限可能是有意义的.
但是,我没有看到这些限制以可访问的,甚至是逻辑的方式记录在某个地方,给出了所有意义.目前,我被迫坚持试错工作流程,并在QTP的在线帮助中单独查找我想到的每一个细节(我可能会发现其他我目前忘记的细节).这是微软设计的现实,还是我忽略了这一点?
问题出现在QTP上,它使用Windows脚本主机作为脚本语言.当然,我可以查找我正在寻找的每一个细节 - 但是,这些是我的主要问题:
在哪里可以找到涵盖脚本主机的各种VBA方言(和版本?)之间语言差异的详细列表或表格?
可以为脚本主机中包含的内容提供(简单)推理吗?
这是一个很好的疯狂发现:
Option Explicit
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: TestVar=42"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
按预期工作 - 显示42.
和:
Option Explicit
ExecuteGlobal "Option Explicit: TestVar: TestVar=41"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
由于未定义TestVar,因此在ExecuteGlobal调用中产生"未定义的变量".好.
我不明白的是:
Option Explicit
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=42"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
不会不扔在第二"标识符重新定义" ExecuteGlobal
呼叫,但显示42 -如同Dim
在第二ExecuteGlobal
呼叫中不存在.
如果你对Class
声明做同样的事情,一切正常,即你无法在任何情况下重新定义一个类.
我勒个去?
我的问题是:为什么ExecuteGlobal
允许我重新定义一个全局变量,而a)ExecuteGlobal禁止访问未声明的变量,b)类定义被区别对待?
我确实有一个导致这种情况的用例(在测试运行时生成源代码并通过ExecuteGlobal执行它,因为某些不那么奇怪的因为你可能期望的原因),但我刚刚提出的要点是有效的,没有我认为现实世界的情景描述.
我使用QTP(HP QuickTest Professional)来解决这个问题,它使用VisualBasic脚本主机引擎进行脚本回放,但它只与VB脚本主机完全相同.
在消除了一些特定的无意义模式之后,我需要识别并可能删除在某个界面中声明的字段,如下所示:
public interface X
{
String A = "xxx";
String B = "zzz";
}
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用Eclipse的"查找所有引用"作为一个接一个的标识符,但面对成千上万的标记,让它在未来几天看起来像一个非常枯燥的全职工作.
我尝试了Google CodePro和Java编译器可以按需吐出的警告,但是只找到了类中非公共字段的选项,而不是接口中的公共字段.
我的下一个尝试是:将它们全部注释掉,然后浏览错误列表.错误列表中没有的所有字段都可以安全地(在我的情况下!)被删除.这将是一个平淡的日子,也因为不是所有的字段列表,也具有积极的参考我要寻找那些所有的字段列表没有任何地方提及.
那么我怎样才能有效地找到所有那些现在没有参考的领域呢?
我的意思是:我认为查看给定项目的那些引用是危险的,因为我的Eclipse工作区不知道的另一个项目可能有引用.这可能是我不在Eclipse或CodePro中提供警告/分析选项的基本原理.
但事实并非如此.如果它不是我的项目中的引用,我想消除它.
想象一下,我正在建立一个标签搜索.我的主索引类型称为Post,它有一个Hashtag项列表,标记为IndexedEmbedded.另外,每个帖子都有一个Comment对象列表,每个对象都包含一个Hashtag对象列表.
在搜索方面,我使用MultiFieldQueryParser,我传递了一长串可能的搜索字段,包括一些嵌套字段,如:
hashTags.value
和
coments.hashTags.value
现在,有趣的事情发生在我想搜索某些东西时,比如#architecture.我找出了主题标签的位置,所以最简单的逻辑做法是将#architecture类型的查询转换为类型之一hashTags.value:architecture or comments.hashTags.value:architecture
尽管可能,这是非常不灵活的.如果我想出另一个包含主题标签的字段怎么办?我也必须把它包括在内.
有没有一般的方法来做到这一点?
PS请记住,我正在搜索的根类型是Post,因为这是我想要实现的结果
很明显,开头括号"(",以及其他字符之间必须转义(以反斜杠为前缀),以便正则表达式包含"文字开口括号":因为有正则表达式选项,"("是一个引导 - 在.
但是,对于结束括号")",怎么会这样呢?没有语法结构具有")"作为引入令牌,是吗?
那么为什么我必须逃避关闭括号才能按字面意思理解?
当然,也可以在其他结束括号中提出同样的问题.
很抱歉这是"为什么会这样?" 题.它可能是无法回答的.但如果是一个很好的理由,唯一的办法去了解它是问!
附录:这个问题背后的基本原理是:例如,http://www.regexguru.com/2008/12/dont-escape-literal-characters-that-arent-metacharacters/给出充分的理由不前缀字符don'需要加前缀.
而且imho,在大多数情况下,结束括号不需要加前缀:由于没有开口的结束括号不是正则表达式组的一部分,我发现在这种情况下它需要被转义完全不合逻辑.