我有以下情况:
abstract class X { abstract X someMethod (...) {...} }.
Run Code Online (Sandbox Code Playgroud)
现在我想约束X的任何实现,让它的'someMethod'方法返回特定的实现类型,而不仅仅是X:
class X1 extends X { X1 someMethod (...) {...} }.
class X1 extends X { X someMethod (...) {...} }. //want this to be flagged as an error
class X2 extends X { X1 someMethod (...) {...} }. //want this to be flagged as an error too
Run Code Online (Sandbox Code Playgroud)
是否有可能使用Java泛型实现这一点?
编辑
好的.我只问了是/否问题并得到了"是".我的错.我真正感兴趣的是"我如何编写声明".
我在Ubuntu服务器上设置了Ruby 1.9.1(p234).我正在尝试部署一个Rails应用程序,它在Apache 2.2/Passenger 2.2.5上提供Rails 2.3-stable.
GET请求正常工作,POST请求立即中断以下日志条目:
Processing UsersController#new (for 80.203.77.44 at 2009-10-24 20:54:55) [GET]
Parameters: {"controller"=>"users", "action"=>"new"}
Rendering template within layouts/application
Rendering users/new
Completed in 23ms (View: 20, DB: 0) | 200 OK [http://myapp/user/new]
/!\ FAILSAFE /!\ 2009-10-24 20:55:01 +0200
Status: 500 Internal Server Error
closed stream
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb:86:in make_rewindable'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb:26:inread'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/request.rb:136:in POST'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb:15:incall'
/var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in call'
/var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:incall'
/var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in call'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:inblock in call'
:8:in synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:incall'
/var/www/myapp/app/releases/20091021213913/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:106:in call'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/rack/request_handler.rb:95:inprocess_request'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/abstract_request_handler.rb:207:in main_loop'
/usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/lib/phusion_passenger/railz/application_spawner.rb:378:instart_request_handler' … 我在Interface Builder中有几个UIBarButtonItem对象,我找不到任何选项来设置这些按钮的辅助功能标签或提示.
我该如何设置这些属性?
我正在为移动电话开发轻量级Gmail客户端,通过IMAP访问Gmail.我想从草稿文件夹中发送草稿,但它有一些附件,我无法下载所有这些附件以通过SMTP发送它.
将其移动/复制到"已发邮件"不会发送它,只是将其移动到该文件夹.
如何在不从客户端获取所有内容和附件的情况下直接发送草稿?有没有IMAP命令呢?
就实际的低级原子指令和内存栅栏而言(我假设它们已被使用),您如何实现STM?
对我来说神秘的部分是,给定一些任意代码块,您需要一种方法可以在之后返回并确定每个步骤中使用的值是否有效.你是怎么做到的,你如何有效地做到这一点?这也似乎表明,就像任何其他"锁定"解决方案一样,您希望保持关键部分尽可能小(以减少冲突的可能性),我是对的吗?
此外,STM可以简单地检测"在执行计算时进入该区域的另一个线程,因此计算无效"或者它是否可以实际检测是否使用了破坏的值(因此运气时有时两个线程可以同时执行相同的临界区需要回滚)?
以下代码一次读取一个字符的文本文件并将其打印到stdout:
#include <stdio.h>
int main()
{
char file_to_open[] = "text_file.txt", ch;
FILE *file_ptr;
if((file_ptr = fopen(file_to_open, "r")) != NULL)
{
while((ch = fgetc(file_ptr)) != EOF)
{
putchar(ch);
}
}
else
{
printf("Could not open %s\n", file_to_open);
return 1;
}
return(0);
}
Run Code Online (Sandbox Code Playgroud)
但是不是打印到stdout [putchar(ch)]而是想在文件中搜索另一个文本文件中提供的特定字符串,即.strings.txt并输出匹配到out.txt的行
text_file.txt:
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt:
Nehalem AMD Athlon Pentium
在这种情况下,三个第一text_file.txt行将匹配.我已经对C语言中的文件操作做了一些研究,似乎我可以使用fgetc[像我在我的代码中一样] …
(免责声明:我是C#家伙.我刚开始学习Clojure.)
我知道Clojure 程序有能力操纵自己或轻松生成其他程序.它与Clojure中的所有内容有关,它是一种数据结构,生成程序与创建任何其他类型的数据结构相同.
有没有人有一个很好的示例程序(或一个参考)显示这个?
如果生成程序,是否可以将该程序"序列化"到磁盘以供以后执行?
仅供参考:
以下示例中的标签(WPF/XAML)只是在屏幕上游行,不会发生包装.删除方向有效,但不提供所需的功能/外观.任何想法如何使WrapPanel包装到当前的大小StackPanel?
<Window Height="300" Width="600">
<StackPanel Orientation="Horizontal">
<WrapPanel>
<Label Height="28" Name="label1" Width="120">First Name</Label>
<Label Height="28" Name="label2" Width="120">John</Label>
<Label Height="28" Name="label3" Width="120">Last Name</Label>
<Label Height="28" Name="label4" Width="120">Smith</Label>
<!-- ...more labels!... -->
</WrapPanel>
<!-- ...other controls/panels... -->
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud) 由于我们公司永远不会让像github这样的第三方靠近我们的源代码,任何人都知道有关如何设置像github这样的scm服务器的任何软件或设置指南或博客,即它会支持
如果我能做到这一点,我可以看到从svn/cvs到git的潜在大规模迁移.(我能看到的唯一绊脚石就是Windows Tortise SVN用户在使用Git windows替代方案时遇到困难)
我想单元测试我的应用程序使用MSMQ,但我发现没有办法,以模拟MessageQueue对象.
var queuePath = @".\Private$\MyQueue";
MessageQueue queue = null;
if (MessageQueue.Exists(queuePath))
{
queue = new MessageQueue(queuePath);
}
else
{
queue = MessageQueue.Create(queuePath);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Moq和xUnit.