小编Mac*_*cke的帖子

Java方法签名后奇怪的"[]"

我今天查看了一些Java代码,我发现了一些奇怪的语法:

public class Sample {
  public int get()[] {
    return new int[]{1, 2, 3};
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为无法编译并想修复我认为的错字,但后来我记得Java编译器确实接受了它!

有人可以帮我理解这是什么意思吗?它是一组函数吗?

java arrays syntax

118
推荐指数
4
解决办法
6828
查看次数

让我的getter方法改变存储值是不好的做法吗?

在我的班级中更改我的getter方法(如版本2)是不好的做法.

版本1:

 public String getMyValue(){
     return this.myValue
 }
Run Code Online (Sandbox Code Playgroud)

版本2:

 public String getMyValue(){

    if(this.myValue == null || this.myValue.isEmpty()){
       this.myValue = "N/A";
    }

    return this.myValue;
 }
Run Code Online (Sandbox Code Playgroud)

lazy-loading class lazy-evaluation getter-setter

68
推荐指数
6
解决办法
5002
查看次数

.bat文件,非阻塞运行/启动

如何在.bat文件中一次启动2个应用程序?我现在的文字是

cd mydir
my.exe
my.exe difParams
//bat is finished. i dont want my.exe to close
Run Code Online (Sandbox Code Playgroud)

cmd batch-file

32
推荐指数
1
解决办法
2万
查看次数

为什么这个程序崩溃:在DLL之间传递std :: string

我无法弄清楚以下崩溃的原因(MSVC9):

//// the following compiles to A.dll with release runtime linked dynamically
//A.h
class A {
  __declspec(dllexport) std::string getString();
};
//A.cpp
#include "A.h"
std::string A::getString() {
   return "I am a string.";
}

//// the following compiles to main.exe with debug runtime linked dynamically
#include "A.h"
int main() {
   A a;
   std::string s = a.getString();
   return 0;
} // crash on exit
Run Code Online (Sandbox Code Playgroud)

显然(?)这是由于可执行文件和DLL的不同内存模型.可能是字符串A::getString()返回是在A.dll中分配并在main.exe中释放?

如果是这样,为什么 - 以及在DLL(或可执行文件)之间传递字符串的安全方法是什么?不使用shared_ptr这样的包装器和自定义删除器.

c++ dll memory-management visual-c++

25
推荐指数
1
解决办法
2万
查看次数

如何在Python中反转列表的一部分(切片)?

为什么这不起作用?

# to reverse a part of the string in place 
a = [1,2,3,4,5]
a[2:4] = reversed(a[2:4])  # This works!
a[2:4] = [0,0]             # This works too.
a[2:4].reverse()           # But this doesn't work
Run Code Online (Sandbox Code Playgroud)

python

22
推荐指数
4
解决办法
2万
查看次数

可以从setuptools setup.py中要求PyQt吗?

我正在构建一个使用PyQt的小应用程序,并且很高兴在setup.py中声明该依赖项.

然而,根据这个博客(谷歌首次点击pyqt setuptools)说它无法完成,而且这里的最后一段也没有尝试去做.

想法?也许我应该切换到PyPi上的PySide

更新:

显而易见的install_requires = [ 'pyqt >= 0.7' ]setup.py:

D:\3rd\BuildBotIcon\my-buildboticon\python>setup.py test
running test
install_dir .
Checking .pth file support in .
C:\Python26-32\pythonw.exe -E -c pass
Searching for pyqt>=4.7
Reading http://pypi.python.org/simple/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/download
No local packages or download links found for pyqt>=4.7
error: Could not find suitable distribution for Requirement.parse('pyqt>=4.7')
Run Code Online (Sandbox Code Playgroud)

python distutils pyqt setuptools

16
推荐指数
2
解决办法
3558
查看次数

如何读/写gzip压缩文件?

如何在C++中读/写gzip文件?

这里iostream包装类看起来不错,这是一个简单的用法示例:

gz::igzstream in(filename);
std::string line;
while(std::getline(in, line)){
  std::cout << line << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

但我无法真正链接它(虽然我有/usr/lib/libz.a).一个简单的

g++ test-gzstream.cpp -lz
Run Code Online (Sandbox Code Playgroud)

不这样做(undefined reference to gz::gzstreambase::~gzstreambase()).

c++ gzip zlib gzipstream

13
推荐指数
3
解决办法
4万
查看次数

如何在Mercurial中检查潜在的合并/ rebase冲突?

有没有一种简单的方法来检查合并/ rebase是否会产生文件冲突,而不实际执行合并/ rebase?

我希望能够决定是否:

  • 如果触摸的文件集(我和他们的)不同,则重新设置
  • 合并,如果我们一直在搞乱相同的文件.

由于错误的合并(由于人为错误以错误的方式解决冲突引起)更容易检测和反转,如果我做两个头的合并,而不是做了rebase.特别是如果我推动我的改变而后来意识到某些事情搞砸了.

(由于我们没有完全全面的测试套件,所以不可能事先检查所有内容.)

而且......我正在运行Windows.:)

mercurial

12
推荐指数
1
解决办法
3391
查看次数

使用ENDSESSION_CLOSEAPP和wParam == FALSE对WM_ENDSESSION的正确响应是什么?

按照WM_ENDESSION文档,当lParam的是ENDSESSION_CLOSEAPP和wParam为FALSE,"应用程序应该不会关机".

  • 那么,我应该忽略它并使用默认响应吗?
  • 它的目的是什么?

(我正在用Qt(C++)中的Windows事件/消息来关闭一些已启动的进程,但这只是上下文,不应该在这里有任何影响......)

session winapi message

11
推荐指数
1
解决办法
1484
查看次数

是否有适用于多种语言的Maven工具?

我正在尝试找到一个像Maven(标准化构建和打包,工件仓库等)这样的工具,它支持Java(和C/C++),特别是Python和.NET(C#).特别需要良好的依赖管理.

我们在我们的地方运行一个混合的语言商店,目前本土的基于python的"über-buildsystem"应该可能会消失.请注意,它不会尝试进行详细构建,只处理模块/项目之间的依赖关系,下载已编译的工件(在C++情况下每个库几百兆)并在现有.sln/.vcproj上调用msbuild/easy_install/etc/etc文件来完成真正的构建.

它起作用,但主要是因为我构建它并知道它能做什么和不能做什么,并且当我需要新东西时我会扩展它.它并没有真正帮助其他开发人员进入它,我越来越觉得我们不应该关注它.(即使它没有那么多工作,似乎没有一个令人信服的选择.)

所以:

  • Python的setuptools似乎只适用于Python(以及一些c ++ - > .pyd编译).
  • Maven主要使用Java和一些C/C++,主要用于JNI.
  • 对于C/C++,什么都没有?(qmake/cmake用于建筑)
  • 对于.NET有一些东西,但它们在Visual Studio和MSFT工具链之外运行良好吗?

在Ant之上构建另一个Maven(但是具有更灵活的支持)(主要使用Beanshell)是我已经完成的事情.当前的Python东西是它的一个分支.

更新:

正如我上面所说,Ant + Ivy需要在顶部构建相当多,但它可能是比我们今天更好的基础,因为我们可以获得更多的构建任务和开箱即用的工件库.(参见Maven Like C++的依赖管理)

所有的帮助热烈赞赏!

build dependency-management maven

11
推荐指数
1
解决办法
1368
查看次数