我目前正在阅读Joshua Bloch撰写的Effective Java,第17项是"继承的设计和文档,或者禁止它".作者建议默认禁止继承.
默认情况下声明类final是否安全,如果需要扩展类,则在以后的发行版中删除final关键字?它是否会破坏与以前版本编译的代码的向后兼容性?
如果是这样的话,那么让所有类最终成为一个更安全的赌注,只有在有良好支持的需求的情况下才能在将来的版本中删除它.
我有一个wcf服务,在单个端点地址上公开了大量的服务方法.到目前为止,所有服务方法都在单个服务合同类中实现.此服务契约类实现了多个服务契约接口.现在我想将服务契约方法的实现分成几个类,以避免契约类增长到大.我使用ServiceHost的自托管方案.ServiceHost只采用实现服务方法的单一类型的类型,因此似乎必须在此类中实现所有内容.当然,方法的肉可以分解为几个类.但是还有一种方法可以将方法分成几个类吗?
如何在输入字段中获取userinput?
QObject::connect( webView, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted()) );
void slotLoadStarted()
{
QWebFrame *frame = webView->page()->currentFrame();
if (frame!=NULL)
{
QWebElementCollection collection = frame->findAllElements("input[name=email]");
foreach (QWebElement element, collection)
{
qDebug() << "element.toOuterXml" << element.toOuterXml();
qDebug() << "element.attribute value:" << element.attribute("value");
}
}
Run Code Online (Sandbox Code Playgroud)
}
如果我设置属性,比它的工作,但我想抓住用户输入,任何想法?
我正在开发一个遗留应用程序,该应用程序正在扩展以在多租户配置中运行.基本体系结构采用旧应用程序,并StoreID为每个表添加一列.然后,每个租户通过一组过滤商店ID的视图来查看旧表,例如:
create view AcmeBatWings.data as
select * from dbo.data d where d.StoreId = 99
Run Code Online (Sandbox Code Playgroud)
它有点比较漂亮,但这简化了问题.
现在,我可以像这样创建一个触发器
create trigger tr_Tenant_fluff on AcmeBatWings
instead of insert
as
insert into AcmeBatWings (Name, StoreId)
select i.Name, 99 from inserted i
Run Code Online (Sandbox Code Playgroud)
假设一个包含Name和StoreId列的简单表.
我的问题是我有100多个表,如果我要遵循这个模式,我将不得不为每个表制作一个专门的触发器,列出每个表的所有字段.短期内令人烦恼的不仅是维护噩梦,因为任何表格更改都需要包含触发器修改.
那么,对于任何具有StoreId的表,如何在每个插入或更新时写入一个触发器,将StoreId字段设置为99?
感谢您帮助SQL新手!
在我们的连续集成服务器(Teamcity 5.1.3)上,我们有一个自动构建应用程序的msbuild脚本.
当我们启用"警告为错误"时:在Visual Studio中,它构建正常(它忽略"*.designer.cs"文件中的方法.但在构建服务器上,我们总是收到以下错误:
[(Rebuild target(s)):] somefile.Designer.cs(XX, XX): error CS1591: Warning as Error: Missing XML comment for publicly visible type or member...
Run Code Online (Sandbox Code Playgroud)
正在使用的MSBuild脚本如下所示:
<MSBuild Projects="proj\$(ProjectName).sln"
Targets="Clean;Rebuild"
Properties="Configuration=Release"
StopOnFirstFailure="True">
</MSBuild>
Run Code Online (Sandbox Code Playgroud)
我可以理解为什么会这样做,但必须有一种方法告诉msbuild忽略生成的文件中缺少的注释?
EDITED
进一步挖掘:在Visual Studio解决方案中,我们选中了"警告为错误",但我们还添加了"抑制警告"文本框中列出的错误1591.MSBuild似乎没有拿起那个"压制警告"文本框并且无法构建.我能做什么?
再次编辑 问题是MSBuild正在针对任何CPU(并且在"任何CPU"配置中我们没有抑制错误1591).一旦我们更改了任何CPU以排除错误1591,它就开始在构建服务器上正确构建.谢谢那些有帮助的人.
msbuild teamcity continuous-integration compilation visual-studio
在Java中使用Collection.sort时,当其中一个内部对象为null时,我应该返回什么
例:
Collections.sort(list, new Comparator<MyBean>() {
public int compare(MyBean o1, MyBean o2) {
return o2.getDate().compareTo(o1.getDate());
}
});
Run Code Online (Sandbox Code Playgroud)
让我们说o2不是null而是o2.getDate()它是,所以我应该在添加空验证时返回1或-1或0吗?
在阅读了这个非常有用的信息(尽管有点争论性)之后,我想了解您使用Python编写大型项目的经验.随着项目变得更大,事情变得无法管理吗?这种担忧是让我依赖Java的一件事.因此,我会特别感兴趣的知情对于大型项目的可维护性和Java和Python的可扩展性的比较.
在Haskell有一个背景我目前正在尝试熟悉Scala.
我在尝试将一个小的,可扩展的表达式语言从Haskell转换为Scala时遇到了一些问题.编写可用新数据变量和操作扩展的数据类型的基本问题通常称为表达式问题.
我在Haskell中的原始解决方案使用带有约束的类型类和实例声明.我的表达式的基础定义如下:
module Expr where
class Expr e where
eval :: e -> Integer
data Lit = Lit Integer
instance Expr Lit where
eval (Lit l) = l
data Plus a b = (Expr a, Expr b) => Plus a b
instance (Expr a, Expr b) => Expr (Plus a b) where
eval (Plus x y) = (eval x) + (eval y)
Run Code Online (Sandbox Code Playgroud)
然后,我有一个数据扩展,增加了乘法:
module ExprWithMul where
import Expr
data Mul a b = (Expr a, Expr b) …Run Code Online (Sandbox Code Playgroud) 我们正在构建一个可供经过身份验证的用户和匿名用户使用的Web应用程序.如果您决定不注册/登录,则只有一组有限的功能.使用Spring Security通过OpenID完成用户身份验证.这很好.
但是,该应用程序还附带了部署的管理UI <host>/<context-root>/admin.我们可以在Spring Security中使用两个独立的领域(例如基本身份验证/admin/**)吗?如何配置?
java ×4
sql ×2
collections ×1
compilation ×1
contract ×1
database ×1
endpoint ×1
final ×1
haskell ×1
implicits ×1
inheritance ×1
input ×1
msbuild ×1
polymorphism ×1
python ×1
qt ×1
qtwebkit ×1
qwebelement ×1
scala ×1
security ×1
service ×1
sorting ×1
spring ×1
sql-server ×1
sqlite ×1
teamcity ×1
typeclass ×1
wcf ×1