在下面的测试中,TesterClass对其两个类型参数之间的关系设置了约束.方法func2()似乎打破了这个约束,我希望它会在某处导致类型编译错误(在func2的定义中,或者每当类与String之外的任何第二个参数一起使用时),但它不会!
此外,如果我调用func2并将结果保存在适当类型的变量中,则编译失败(在该变量的类型上).但是做同样的事情并保存在更通用的类型(例如Object)中会成功,尽管事实上函数的返回类型在两种情况下都应该具有相同的类型(在向上转换之前).
这里发生了什么?
谢谢!
public class TestGenerics {
public static class ParamedType<T> {}
public class TesterClass<A extends ParamedType<B>, B> {
public TesterClass<A, B> func() {
return new TesterClass<A, B>();
}
public TesterClass<A, String> func2() {
return new TesterClass<A, String>();
}
}
public Object test() {
// How can I use these type parameters? Doesn't .func2 now have an invalid return type?
TesterClass<ParamedType<Integer>,Integer> testClass = new TesterClass<TestGenerics.ParamedType<Integer>, Integer>();
//TesterClass<ParamedType<String>, Integer> res2 = testClass.func2(); // <-- will not compile
Object res = …Run Code Online (Sandbox Code Playgroud) 为什么WPF缺乏HTML支持?我知道有Frame.但是,这甚至不应被视为WPF控件(至少,当它呈现HTML时).我知道有一个浮动窗口的黑客,但那是废话!
我只是想在我的WPF应用程序中,在带有圆角和阴影的窗口中显示静态HTML文档.我正在打砖墙,我非常沮丧!
救命!
我正在处理的应用程序在传播设置时出现问题,但一旦关闭并重新打开,它似乎工作正常.这是一个闹钟应用程序,因此它不会受益于多任务处理.由于我使用NSUserDefaults保存相关设置,因此我关闭了多任务处理:
@implementation MyAppDelegate
- (void) applicationDidEnterBackground:(UIApplication *)application {
exit(0);
}
...
@end
Run Code Online (Sandbox Code Playgroud)
因此,此时用户必须手动关闭并重新打开应用程序.是否有可以发送的命令使应用程序关闭并重新打开(自动)?如果在从屏幕上删除设置视图控制器时更改了某些设置,我希望应用关闭并重新打开.
如何调试VS2010安装项目?我尝试附加到msiexec.exe,但它没有帮助.
当我在query表上创建一个新记录时,我希望updated_at(timestamp)为'0000-00-00 00:00:00' - 而不是当前时间戳,因为Ruby on Rails默认设置.
MySQL字段:
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
但是,Ruby on Rails生成了这个SQL查询:
INSERT INTO `queries` (`updated_at`) VALUES ('2011-01-04 17:40:15')
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
允许C代码定期访问从单独的Labview程序生成的整数的瞬时值的最佳方法是什么?
我有时间关键的C代码控制科学实验并每20ms记录一次数据.我还有一些labview代码可以操作不同的仪器并输出一个100ms的整数值.我希望我的C代码能够记录labview的值.做这个的最好方式是什么?
一个想法是让Labview在循环中将整数写入文件,并让C代码在循环中读取文件的值.(如果需要,我可以在我的C代码中添加第二个线程.)Labview也可以链接到C dll.所以我或许可以在C中编写一个DLL,以某种方式促进两个程序之间的共享.这是可取的吗?我该怎么办?
我试图弄清楚我是如何成功更改"只读"数组的.下面的代码运行成功,但我很困惑为什么私有/只读数组的解除引用是合法的,如下所示:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.Time[5] = 5; // Why is this legal? How can I make it illegal?
}
}
public class MyClass
{
private readonly uint[] time;
public IList<uint> Time
{
get { return time; }
}
public MyClass()
{
time = new uint[7];
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如我在上面提到的那样,我认为Time [5]是非法的,因为公共IList Time没有setter.
如何更改MyClass以确保它不合法myClass.Time[5]?
注意:我已经澄清了这个问题的意图,我在一开始就不清楚其意图是制作这个ILLEGAL.而且我想了解为什么它的合法性一如既往.
例如,如果请求成功,我将返回一个View,如果没有,则返回一个指示错误消息的String,并将content-type设置为xml或json.并且JavaScript XHR回调方法将完成重定向到另一个页面(View)或保持在同一页面并显示错误信息的工作.
根据我读到的内容,似乎我应该使用"void"作为处理程序方法的返回类型.检查一下:"如果方法处理响应本身(通过直接写响应内容,为此目的声明类型为ServletResponse/HttpServletResponse的参数)或者假定视图名称应通过RequestToViewNameTranslator隐式确定(无法声明),则为void处理程序方法签名中的响应参数."(Spring Framework参考).
我不明白的是"视图名称应该通过RequestToViewNameTranslator隐式确定(不在处理程序方法签名中声明响应参数)"是什么意思?有人给我举个例子吗?
我正在使用NHibernate 2.2与c#3.5和VS2008,
问题是当我关闭Nhibernate Session对象时,内存未释放.甚至我在每次关闭后调用GC.Collect(),但没有任何东西被释放
当会话关闭时,如何强制NHibernate释放会话中加载的对象?
谢谢
我想将Delphi 7项目迁移到Delphi 2010.
我们正在使用Rave BE的TReportShell和TDetailShell组件构建"代码报告".Rave BE 7.7中不再存在这些组件.
此外,似乎在Rave BE中打破了unicode支持(在Delphi 2009上的Rave Reports中显示unicode文本).
将此项目移植到Delphi 2010的最佳解决方案是什么?
java ×2
activerecord ×1
c ×1
c# ×1
compiler-bug ×1
debugging ×1
delphi ×1
delphi-2010 ×1
eclipse ×1
eclipse-jdt ×1
frame ×1
generics ×1
html ×1
installation ×1
ios ×1
ios4 ×1
labview ×1
nhibernate ×1
rave-reports ×1
readonly ×1
reporting ×1
spring ×1
spring-mvc ×1
variables ×1
wpf ×1