在大多数.NET项目中,我可以使用文件夹来组织代码文件.在C++中,我不能,但过滤器最终扮演相同的角色.但是,在使用Visual Studio 2010的F#中,我不能.每个代码文件都直接显示在项目目录中.为什么这个功能不可用?
使用大量文件组织项目的最佳策略是什么?
我经常听到"无国籍"和"不可改变"这个词.例如,HTTP是无状态协议,String对象是不可变对象.但我很难掌握两者之间的差异.当我创建无状态对象时,它不会在内部存储任何"状态"数据.如果我创建一个Immutable对象,它意味着它永远不会改变.
这是不是意味着同样的事情?
由于不可变对象不会改变,因此根据定义它不能具有状态.它永远是它.如果一个对象没有状态,则不能进行变异(根据定义).因此,并非所有无状态对象都是不可变和不可变对象无状态的吗?
什么可以是可变无状态对象或不可变状态对象的示例?
编辑:似乎我在第一次听起来太烦了,这是一个返工.
我想创建一个URL常量,就像这样
public static final URL REMOTE_URL = new URL("http://example.com/");
Run Code Online (Sandbox Code Playgroud)
但我不能因为构造函数抛出一个已检查的异常.现在我用
public static final URL REMOTE_URL = createUrl("http://example.com/");
private static URL createUrl(String url) {
try {
return new URL(url);
} catch (MalformedURLException error) {
throw new IllegalArgumentException(error.getMessage(), error);
}
}
Run Code Online (Sandbox Code Playgroud)
但它感觉像重新发明轮子.我不可能是唯一一个想要使用URL常量的人吗?所以我想知道是否有第三方工具箱库(如番石榴或apache-commons,或其他什么东西)甚至更好,标准Java中包含这些设施的东西?当我们通过减小util包的大小来启动一个新项目时,这对我有帮助:).
我正在尝试使用Boost Test为我的代码添加一些非常需要的单元测试.但是我似乎无法让它发挥作用.现在我有以下代码
#include <Drawing.h>
#define BOOST_AUTO_TEST_MAIN
#define BOOST_TEST_MODULE DrawingModelTests
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(DrawingModelTests)
BOOST_AUTO_TEST_CASE ( DrawingConstructorTest)
{
Drawing * drawing = new Drawing;
delete drawing;
}
BOOST_AUTO_TEST_SUITE_END()
Run Code Online (Sandbox Code Playgroud)
从我的理解,我不需要放一个主要或任何东西,因为助推器将自己照顾它.但是,Visual Studio不断给我一个"必须定义的入口点"错误.我是否需要手动添加静态库的链接?我正在编译为标准的.exe控制台应用程序.
我最近开始在我的应用程序中使用hibernate和c3p0作为ORM.但是,当我关闭会话工厂时,连接池不会自行关闭!这是我的应用程序中唯一一个我在会话中做任何事情的地方.
StatelessSession session = null;
Transaction transaction = null;
try {
session = sessionFactory.openStatelessSession();
transaction = session.beginTransaction();
List<Thingy> list = session.getNamedQuery("getAvailableThingy").list();
transaction.commit();
return list;
} catch (Exception error) {
if (transaction != null) {
transaction.rollback();
}
throw error;
} finally {
if (session != null) {
session.close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的hibernate.cfg.xml配置文件
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="javax.persistence.validation.mode">none</property>
<property name="hibernate.connection.release_mode">after_transaction</property>
<property name="hibernate.c3p0.minPoolSize">1</property>
<property name="hibernate.c3p0.maxPoolSize">2</property> …Run Code Online (Sandbox Code Playgroud) 我最近开始学习如何使用openCL加速我的部分代码.到目前为止速度增加令人印象深刻.在一种情况下,代码的运行速度比CPU快50倍.但是我想知道是否可以在生产环境中开始使用此代码.原因是我第一次尝试运行示例代码时,没有任何效果.我可以通过在Nvidia openCL SDK下载页面下载驱动程序来运行它(我有一个Geforce GTX260).它在安装过程中给了我一个蓝色,但之后我能够运行示例程序并创建自己的代码.
事实上,它对我来说不是"开箱即用"意味着主流驱动程序还不支持它,尽管事实上它是在驱动程序下载页面上专门编写的吗?ATI支持怎么样?每个人都必须下载安装时给我一个蓝屏的特殊驱动程序吗?
总之,openCL是否已准备好生产代码?
如果有人能给我一些细节,我想知道.有没有人能够在许多不同的设备上运行一个简单的程序而无需安装任何SDK相关的东西?
我目前正在使用scala进程API scala.sys.process但是,我似乎无法弄清楚如何优雅地终止对SIGTERM信号做出反应的进程.我已经做到了在Python那里有漂亮之前terminate和send_signal功能上的过程,但上阶scala.sys.process.Process对象,我看到的是destroy.对我来说,看起来scala会从轨道上对我的过程进行核对,只是为了确定,这不是我想要的.
我怎么能告诉这个进程它应该清理自己并退出我的scala代码?
val launcher = Process("myprocess", Seq("args"))
val process = launcher.run()
process.destroy() //Err... no? terminate or equivalent like in python please?
Run Code Online (Sandbox Code Playgroud)
编辑
有关更多详细信息:我的scala进程正在启动C++子进程,该进程侦听信号处理程序(SIGTERM,SIGKILL等)以了解何时退出.它经过了很好的测试,并且可以正确清洁.我的问题是我不知道如何从我的scala应用程序发送该信号!因此,我的C++过程总是被拖到外面拍摄而不是被要求停止.
我对Photoshop CS4自动化有一点问题.当我想在Visual Studio 2008项目中添加对COM API的引用时,Adobe Photoshop对象库不会显示在"COM"选项卡下的"添加引用"面板中.但是,Illustrator CS4 Type库显示得很好.Photoshop本身运行完美,无论是32位还是64位.Photoshop与Master Suite CS4的其他应用程序一起安装.
这不适用于Windows 7和Windows XP,在2台不同的机器+ 1虚拟PC(Vmware工作站)上.我也在VS2010 Beta 1和MS Word VB编辑器中尝试过它,但它在这里也没有用.
有人有什么想法吗?如果您能够添加引用,那么您的配置是什么?
在C++中,如何确定程序是否具有对文件的只读访问权限或读写权限?我搜索了boost文件系统库,但我还没有找到帮助我的东西.现在我想打开文件,尝试写入内部并检查错误,但这似乎不是一个非常合适的方法.
任何线索?
编辑:它需要跨平台
我正在构建一个Web应用程序,我必须处理国际字符(例如"J'aivisualillédesélèveàladôtule").某些数据位于文件系统上任意目录中的任意静态文本文件中.这些文件都是utf-8(感谢标准化!)
为了提供这些数据,我使用了一个带有ResourceHandler处理程序的嵌入式jetty.我没有任何web.xml文件.除了静态之外,我还有一堆通过servlet处理的restful API.
问题是,Jetty ResourceHandler类似乎没有随静态文件一起发送字符集Content-Type.如果我请求index.html, Content-Type是text/html.为了正确处理突出的角色,我希望它能成为现实Content-Type: text/html; charset=utf-8
对于具有utf-8的默认字符集的文件,text/html或者text/css,这很好,但是有些文本文件没有,并且被错误地解释为Windows-1252,并且重音字符变得乱码(我只是回到了QuébecLiquor Store,而不是魁北克酒商店).有没有办法指定默认字符集并告诉jetty始终发送它?像阿帕奇这样的东西AddDefaultCharset utf-8