我目前正在尝试重构一个看起来像这样的项目的一部分:
很多班
B extends A; C extends A; D extends C; E extends B; F extends A; ...
Run Code Online (Sandbox Code Playgroud)
在代码的某处:
if (x instanceof B){
B n = (B) x;
...
}else if (x instanceof C){
C n = (C) x;
...
}else if (x instanceof D){
D n = (D) x;
...
}else if (x instanceof E){
E n = (E) x;
...
}else if (x instanceof G){
G n = (G) x;
...
}...
Run Code Online (Sandbox Code Playgroud)
上面的if-construct目前位于一个CC为19的函数中.现在我的问题是:我可以将这个if-construct拆分为多个函数并让Java的OO做神奇吗?或者有什么捕获我需要注意的?
我的想法:
private void oopMagic(C obj){ …Run Code Online (Sandbox Code Playgroud) 由于我是网络服务新手,请您回答我的问题.我的问题是
我想实现一个Web服务,当客户端调用此Web服务时,该服务将pdf文件发送到客户端.
请有人帮我处理好的代码或解释.
现在可以请一些人解决我的错误.
12-23 09:42:48.429:DEBUG/installd(32):DexInv:--- BEGIN'/ data/app/vmdl33143.tmp'--- 12-23 09:42:51.708:DEBUG/dalvikvm(328) :DexOpt:'Lorg/xmlpull/v1/XmlPullParser;' 有一个较早的定义; 阻止
12-23 09:42:51.730:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/io/KXmlParser;' 有一个较早的定义; 阻止
12-23 09:42:51.749:DEBUG/dalvikvm(328):DexOpt:'Lorg/xmlpull/v1/XmlSerializer;' 有一个较早的定义; 阻止
12-23 09:42:51.759:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/io/KXmlSerializer;' 有一个较早的定义; 阻止
12-23 09:42:51.779:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/kdom/Node;' 有一个较早的定义; 阻止
12-23 09:42:51.779:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/kdom/Document;' 有一个较早的定义; 阻止
12-23 09:42:51.819:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/kdom/Element;' 有一个较早的定义; 阻止
12-23 09:42:51.830:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/Wbxml;' 有一个较早的定义; 阻止
12-23 09:42:51.840:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/WbxmlParser;' 有一个较早的定义; 阻止
12-23 09:42:51.900:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/WbxmlSerializer;' 有一个较早的定义; 阻止
12-23 09:42:51.910:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/syncml/SyncML;' 有一个较早的定义; 阻止
12-23 09:42:51.910:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/wml/Wml;' 有一个较早的定义; 阻止
12-23 09:42:51.929:DEBUG/dalvikvm(328):DexOpt:'Lorg/kxml2/wap/wv/WV;' 有一个较早的定义; 阻止
12-23 09:42:51.929:DEBUG/dalvikvm(328):DexOpt:'Lorg/xmlpull/v1/XmlPullParserException;' 有一个较早的定义; 阻止
12-23 09:42:51.949:DEBUG/dalvikvm(328):DexOpt:'Lorg/xmlpull/v1/XmlPullParserFactory;' 有一个较早的定义; 阻止
12-23 09:42:53.299:INFO/dalvikvm(328):DexOpt:没有解决模糊类'Lorg/xmlpull/v1/XmlPullParser;'
12-23 09:42:53.319:INFO/dalvikvm(328):DexOpt:没有解决模糊类'Lorg/xmlpull/v1/XmlPullParser;'
12-23 09:42:53.329:INFO/dalvikvm(328):DexOpt:没有解决模糊类'Lorg/xmlpull/v1/XmlPullParser;'
12-23 09:42:53.350:INFO/dalvikvm(328):DexOpt:没有解决模糊类'Lorg/xmlpull/v1/XmlPullParser;'
12-23 09:42:53.350:INFO/dalvikvm(328):DexOpt:没有解决模糊类'Lorg/xmlpull/v1/XmlPullParser;'
12-23 …
将unsigned char数组复制到另一个的最佳方法是什么?
例如:
unsigned char q[1000];
unsigned char p[1000];
strcpy (q,&p);
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,它给我错误说"无法将参数1从unsigned char [1000]转换为char*".
哪个最适合获取用户登录其帐户的日志文件?用一个小例子来解释......谢谢你的时间......
我是Objective-C的一个相对新手(只研究了Arron Hillegras的书)并且对我在Apple的一个代码示例中发现的下面的代码片段感到困惑,特别是 - >是什么意思?
-(id) initWithNumbers:(NSArray *)numbers
{
self = [super init];
if (self != nil)
{
self->_numbers = [numbers copy];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
在头文件中_numbers被声明为
NSNumber * _number;
Run Code Online (Sandbox Code Playgroud)
(下划线有一些重要意义,因为我记得在某个地方读过这个内容,但此刻我也没想到.
谢谢罗宾
void MainWindow::whatever(){
QRegExp rx ("<span(.*?)>");
//QString line = ui->txtNet1->toHtml();
QString line = "<span>Bar</span><span style='baz'>foo</span>";
while(line.contains(rx)){
qDebug()<<"Found rx!";
line.remove (rx);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经使用这个工具在线测试了正则表达式.使用给定的正则表达式字符串和<span style="foo">Bar</span>工具的示例文本说它应该在字符串中找到正则表达式.但是,在我的Qt代码中,我永远不会进入我的while循环.
我以前从未用过Qt或任何其他语言的正则表达式.有人能提供一些帮助吗?谢谢!
[edit]所以我发现errorString()如果正则表达式无效,QRegExp有一个函数可以使用.我输出这个并看到:"糟糕的重复语法".不太确定这意味着什么.当然,谷歌搜索"糟糕的重复语法"提出了...这篇文章.该死的谷歌,你快.
当我使用DefaultButton(编辑登录+ Tab,编辑密码+ Enter)输入登录密码时,该X.Password属性仍未更改.那么当我使用DefaultButton时如何提交密码?
member X.Password
with get() = password
and set value =
password <- value
X.OnPropertyChanged "Password"
member X.LoginCommand =
new RelayCommand ((fun canExecute -> true), (fun action ->
X.SelectedAccount <-
match
X.Accounts
|> Seq.filter (fun acc ->
acc.Name = login &&
acc.Password = password) with
| s when Seq.isEmpty s ->
X.ConvertButtonEnabled <- false
ignore <| MessageBox.Show(sprintf
"User %s doesn't exist or password incorrect password" X.Login)
{Name=""; Role=""; Password=""; ExpenseLineItems = []}
| s …Run Code Online (Sandbox Code Playgroud) 我的项目中有一个简单的textBox.
我做了这种风格(为了说明目的):
<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}">
<Style.Setters>
<Setter Property="Background" Value="LightGray"/>
</Style.Setters>
</Style>
Run Code Online (Sandbox Code Playgroud)
然后在某一点上,我正在做:MyTextBox.Background = Brushes.Red在我的代码隐藏中.
到那里,一切正常.
现在我希望能够恢复原始的背景颜色,但没有硬编码.
即:我知道我可以做MyTextBox.Background = Brushes.LightGray,但我正在寻找一种通用的方式,使我能够恢复到原始风格的背景属性,而不知道它.
我尝试将其设置为null,但当然它给了我一个透明的背景,这不是我想要的.
这有可能吗?如果是的话,我怎样才能实现这一目标?
谢谢
我创建了一个存储cookie的网页,以记住用户在方案查看器中放置的ID.它适用于IE,Firefox和Chrome的桌面版本.但是,当我尝试使用Android或iPhone访问它时,它不起作用.
我想知道的是你如何看待存储的cookie或如何调试JavaScript/HTML/CSS.如果我查看桌面Firefox中的错误,我会发现JavaScript和CSS没有错误.
我有一个列表视图,显示一组行,每行都是可点击的.现在,我希望在一个标题下对相似类型的行进行分组,如图所示(模拟).有些人可以为此提供建议或提供方法.
