在开发Maven Web应用程序时,我通常会使用它jetty-maven-plugin
来快速启动我的应用程序进行本地测试和调试.使用启动m2eclipse
有一个缺点,即没有正确包含所有调试源,即使它们是由Maven下载的(请参阅源查找似乎不起作用).
在Eclipse中调试Maven Web应用程序的首选方法是什么?我特别欣赏与之配合使用的配置gwt-maven-plugin
.
我正在浏览scala测试,我不明白为什么编译器在比较"两个新鲜对象"时会产生警告.
这是测试'输出:http: //lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/neg/checksensible.check
例:
checksensible.scala:12: warning: comparing a fresh object using `!=' will always yield true
println(new Exception() != new Exception())
^
Run Code Online (Sandbox Code Playgroud)
如果我编写一个实现==
方法的类,它也会产生这个警告:
class Foo(val bar: Int) {
def ==(other: Foo) : Boolean = this.bar == other.bar
}
new Foo(1) == new Foo(1)
warning: comparing a fresh object using `==' will always yield false
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢oxbow_lakes,我必须覆盖equals方法,而不是==
class Foo(val bar: Int) {
override def equals(other: Any) : Boolean = other match {
case other: Foo => this.bar …
Run Code Online (Sandbox Code Playgroud) 这是我最近一直在考虑的另一个.我们在之前的讨论中得出结论:"自然主键是坏的,人工主键是好的." 之前使用Hibernate我已经看到Hibernate默认为所有表创建一个序列.起初我对此感到困惑,你为什么要这样做.但后来我看到了它使父母和孩子联系起来的优势.由于没有表具有相同的主键值,因此意外地将父项与不是子项的表链接不会产生任何结果.
有没有人看到这种方法的任何缺点.我只看到一个:你的数据库中不能有超过999999999999999999999999999的记录.
通过将xml转换为数组(使用xml2array)生成以下数组.然而,它不是我在Drupal 6形式中对optgroup所需的完全正确的格式.
Array (
[root] => Array ([attr] => Array ([id] => 1) [label] => Array ([value] => My Root)
[node] => Array (
[0] => Array ([attr] => Array([id] => 2) [label] => Array([value] => Category 1)
[node] => Array(
[0] => Array ([attr] => Array ([id] => 14) [label] => Array ([value] => Sub-Category 1))
[1] => Array([attr] => Array ([id] => 15) [label] => Array([value] => Sub-Category2))
Run Code Online (Sandbox Code Playgroud)
我认为数组也被简化为这种格式,子类别的id值保持不变.但是我无法用drupal文档证实这一点,因为他们没有提到任何关于为选项赋值的事情.
Array (
[Category 1] => Array(
[14] => Sub-Category …
Run Code Online (Sandbox Code Playgroud) 如何格式化WPF Listview列以显示仅2个小数点?
如果我有日期对象,如何在javascript中以2/25/2007格式显示日期
我的程序输出看起来像这样(tab delim):
$ ./mycode somefile
0000000000000000000000000000000000 238671
0000000000000000000000000000000001 0
0000000000000000000000000000000002 0
0000000000000000000000000000000003 0
0000000000000000000000000000000010 0
0000000000000000000000000000000011 1548.81
0000000000000000000000000000000012 0
0000000000000000000000000000000013 937.306
Run Code Online (Sandbox Code Playgroud)
我想要做的只是在FIRST列上:用A替换0,用C替换1,用G替换2,用T替换3.有没有办法可以直接从"mycode"音译输出.产生这个:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 238671
...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT 937.306
Run Code Online (Sandbox Code Playgroud) 为了争论,我有一个object
.我无法修改我的函数的签名,因为我正在扩展其他人的类.
举一个具体的例子,我有以下内容:
class Foo<T> : SomeBaseClass
{
public override MyFunction(object value)
{
// TODO: Figure out if value is an instance of Foo, though I don't care
// what type was associated with it.
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法确保这value
是某种Foo
类型的实例?
我知道有一个名为Dll to lib的工具,但开发人员要求1000美元.我只需要转换一个库一次,所以不容易证明这个价格.
我尝试了IMPLIB32.EXE,但我只是得到空的.lib文件.我怎么能做到这一点?也许我可以写一个简单的转换应用程序?
Added1:
Dll通常是stdcall而不是cdecl,用旧的C语言编写,而不是C#或.NET或C++.我现在需要从C++应用程序中调用它们.一个例子是SQLite.dll或zlib.dll.我无法访问这些dll的.lib文件.
Added2:
我为VS2008重新编写了这段代码 http://floodyberry.wordpress.com/2008/09/08/generating-dll-wrappers/, 并在此处下载了可下载的示例Dll等:http: //www.transferbigfiles.com/Get .aspx?id = 7d86fa0b-6ddc-4f6f-8d31-2c20824aae9a 这反过来又创建了一个创建Dll的项目.当我尝试编译Dll时,我收到链接器错误:AddShow.dll:致命错误LNK1107:文件无效或损坏:无法在0x300读取此处描述:http://list.isis.vanderbilt.edu/pipermail/udm-users /2006-March/000664.html 不确定如何继续.到目前为止如此接近
接下来我们转到这个方法
http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/
运行dumpbin参数/ exports C:\ path\to\AddShow.dll绝对没有做过一些研究
http://msdn.microsoft.com/en-us/library/aa446532.aspx 似乎需要从common/ide文件夹中找到mspdb71.dll(现在是mspdb80.dll),dumpbin.exe现在运行时出错:
致命错误LNK1106:无效文件或磁盘已满:无法寻求0x6179A这些线程表明dumpbin.exe的版本可能是问题
我有Microsoft(R)COFF/PE Dumper版本9.00.30729.01
所以我尝试了Microsoft(R)COFF二进制文件转储器版本5.12.8078但没有成功.经过多次阅读后,我不再接近了
http://support.microsoft.com/kb/815645 http://support.microsoft.com/kb/839286 http://markmail.org/message/p5vwzyfyv3bs6z34 http://fixunix.com/programmer/94825-fatal -错误- lnk1106,无效的文件,磁盘full.html
当我运行ProcMon时,我看到第一次出现queryopen和sqlite3.dll,当svchost.exe尝试打开它时失败,错误路径未找到.路径是C:\ Program Files\Microsoft Visual Studio 9.0\VC\bin\SQLITE3.DLL并且是正确的.如果我把它放在C盘的根部,那么我得到NAME NOT FOUND错误:
C:\ Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe.Local
C:\ Program Files\Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe.Local
从link.exe和dumpbin.exe分别.我使用XPSP3而不是Vista,这是我对sysinternals的限制.什么是这些.local文件?
(csrss.exe也无法找到一些清单文件.)
所以没有成功,只是更神秘
补充3:
我试图从其安装位置\ Program Files\Microsoft Visual Studio 8\VC\bin运行dumpbin.exe,但操作系统说它无法找到mspdb80.dll.我从\ Program Files\Microsoft Visual Studio 8\Common7\IDE复制了mspdb80.dll,试图让dumpbin.exe运行.
现在我收到错误:"c1902程序数据库管理器不匹配,请检查您的安装"
如果我从\ Program Files\Microsoft Visual Studio …
我有一个聚合表:
> aggdata[1:4,]
Group.1 Group.2 x
1 4 0.05 0.9214660
2 6 0.05 0.9315789
3 8 0.05 0.9526316
4 10 0.05 0.9684211
Run Code Online (Sandbox Code Playgroud)
当我有Group.1和Group.2的值时,如何选择x值?
我试过了:
aggdata[aggdata[,"Group.1"]==l && aggdata[,"Group.2"]==lamda,"x"]
Run Code Online (Sandbox Code Playgroud)
但那回复所有的x.
更多信息:我想这样使用:
table = data.frame();
for(l in unique(aggdata[,"Group.1"])) {
for(lambda in unique(aggdata[,"Group.2"])) {
table[l,lambda] = aggdata[aggdata[,"Group.1"]==l & aggdata[,"Group.2"]==lambda,"x"]
}
}
Run Code Online (Sandbox Code Playgroud)
任何更容易的建议,并给予这个结果,我很感激!