在Java中我可能会这样做:
class MyClass {
private List<? extends MyInterface> list;
public void setList(List<MyImpl> l) { list = l; }
}
Run Code Online (Sandbox Code Playgroud)
......假设(MyImpl implements MyInterface当然).
使用?时,Scala中的模拟是Buffer什么?
import java.lang.reflect._
import scala.collection.mutable._
class ScalaClass {
val list:Buffer[MyInterface] = null
def setList(l: Buffer[MyImpl]) = {
list = l
}
}
Run Code Online (Sandbox Code Playgroud)
这(当然)不编译 - 但是如何list以这样的方式声明变量呢?
编辑 ; 我要补充一点.显然,这与Java中的泛型在T中从不协变这一事实有关,而在Scala中,它们可以是协变的,也可以不是协变的.例如,Scala类List在T中是协变的(并且必然是不可变的).因此以下将编译:
class ScalaClass {
val list:List[MyInterface] = null
def setList(l: List[MyImpl]) = {
list = …Run Code Online (Sandbox Code Playgroud) 我有一个测试用例,需要在基于ajax的文本字段中键入部分值,并验证列表是否具有预期内容.如果是,请选择内容.知道如何使这项工作?
我可以使用msdb.dbo.sp_send_dbmail以html格式发送电子邮件.仅在格式方面对文本非常好.例如:
EXEC msdb.dbo.sp_send_dbmail
@recipients = @p_recipients,
@subject = @v_subject,
@body=@emailHTML,
@body_format = 'HTML';
Run Code Online (Sandbox Code Playgroud)
但是,如果我想在我的SQL服务器中包含从数据生成的趋势图像,并将它们嵌入到html(@emailHTML)中,我应该使用什么html标签?
如果我使用[img]标签,那么我需要设置src属性.生成的图像保存在我的本地SQL服务器的硬盘中.我可以把它们放在IS服务器网页区域.但是所有这些Web服务器都可以访问Intranet,但不能在我的工作之外.
有没有办法在电子邮件中嵌入图片?如何设置html嵌入图像?
我使用的是Microsoft SQL Server 2005.我更喜欢使用msdb.dbo.sp_send_dbmail将报告作为电子邮件发送出去.我对html格式有很多控制权.如果没有办法,我可能必须将图像作为附件发送.
我在MSSMS中查询执行~2秒(返回25K行)
.NET(sqlReader)中使用的相同查询只需几分钟!
我也尝试过只执行读者
(评论while循环中的所有代码只是离开reader.Read()) - 仍然相同!
知道怎么了?
我不是DBA,也没有特权与Profiler一起玩 - 会问我的DBA,让大家都知道.
与此同时,我注意到在我正在谈论的SP中添加" WITH RECOMPILE "参数后,必不可少的性能提升
所以,从我的角度来看,执行计划似乎就是这样......你怎么看?
[编辑] 我所检查的是从QA和.NET执行以下查询
select @@options
Run Code Online (Sandbox Code Playgroud)
我的理解是它将为两个环境返回相同的值.(如果没有使用不同的ex.plans)我是对的吗?
[EDIT2] 我已经阅读(来自http://www.sqldev.net/misc/fn_setopts.htm)在QA 中ARITHABOIRT = ON(在.NET中它关闭)
enybody是否知道如何为每个.NET连接强制ARITHABOIRT = ON?
有没有人知道在Python中使用HTML实体代码(例如< &)将字符串转换为普通字符串(例如<&)的简单方法?
cgi.escape()将逃脱字符串(很差),但没有unescape().
我不明白为什么这会编译.f()和g()在内部类中是可见的,尽管是私有的.他们是特殊的,因为他们是内部阶级?
如果A和B不是静态类,它仍然是相同的.
class NotPrivate {
private static class A {
private void f() {
new B().g();
}
}
private static class B {
private void g() {
new A().f();
}
}
}
Run Code Online (Sandbox Code Playgroud) 当使用sprintf将指针复制到字符串时,我有一些代码堆栈转储.我试图将动物的内容复制到一个名为output的新指针数组中.但是,我得到一个堆栈转储.
输出应该是以下内容:新动物兔新动物马新动物驴
我正确地走这条路吗?
非常感谢
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void p_init(const char **animals, char **output);
int main(int argc, char **argv)
{
char *animals[] = {"rabbit", "horse", "donkey", '\0'};
char **prt_animals = animals;
char *output[sizeof(*animals)];
/* print the contents here */
while(*prt_animals)
{
printf("Animal: %s\n", *prt_animals++);
}
/* copy and update in the output buffer */
p_init(*&animals, *&output);
getchar();
return 0;
void p_init(const char **animals, char **output)
{
while(*animals)
{
sprintf(*output, "new animal %s", *animals);
*output++;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读一些与线程相关的代码,并发现了这段代码:
MyThread::start()
{
//Create a thread
m_pThread = AfxBeginThread(/*some parameters*/)
//Create a duplicate handle for the created thread
m_hDuplicateHandle = DuplicateHandle(/* some more parameters*/)
}
MyThread::stop()
{
//Set some variables so that the thread comes out of its run() function
WaitForSingleObject(m_hDuplicateHandle, defaultTimeout);
CloseHandle(m_hDuplicateHandle);
}
Run Code Online (Sandbox Code Playgroud)
我的问题,为什么需要重复的句柄?我们不能直接等待原来的线程句柄吗?它以某种方式变得无效吗?
我正在使用c ++进行win 32多线程处理.场景:我有一个多线程使用的函数.此函数作为关键部分(或任何可以锁定资源的构造).在临界区中抛出异常.此时我需要注意在异常catch块中解锁资源.
有没有其他办法可以做到这一点?我的意思是,让我们说我不想记得在catch块中释放锁,是否有任何常见的方法来处理这个问题以避免这种容易出错的情况?
我正在维护一个较旧的Java代码库(jvm 1.4),它似乎使用克隆作为对象实例化的替代方案,我猜测它是一种性能优化.这是一个人为的例子:
public class Foo {
private SomeObject obj; // SomeObject implements Cloneable
public Foo() {
obj = new SomeObject();
obj.setField1("abc"); // these fields will have the same value every time
obj.setField2("def");
}
public void doStuff() {
SomeObject newObj = obj.clone(); // clone it instead of using a factory method
// do stuff with newObj
}
}
Run Code Online (Sandbox Code Playgroud)
关于过早优化的常见警告尽管如此,这实际上是一个推荐的成语吗?