小编mer*_*ike的帖子

在编译带有noImplicitAny标志的typescript时,如何防止错误"对象类型的索引签名隐式具有'任何'类型"?

我总是使用标志--noImplicitAny编译Typescript.这是有道理的,因为我希望我的类型检查尽可能紧.

我的问题是,使用以下代码我得到错误Index signature of object type implicitly has an 'any' type:

interface ISomeObject {
    firstKey:   string;
    secondKey:  string;
    thirdKey:   string;
}

let someObject: ISomeObject = {
    firstKey:   'firstValue',
    secondKey:  'secondValue',
    thirdKey:   'thirdValue'
};

let key: string = 'secondKey';

let secondValue: string = someObject[key];
Run Code Online (Sandbox Code Playgroud)

需要注意的重要一点是,关键变量来自应用程序中的其他位置,可以是对象中的任何键.

我试过通过以下方式明确地转换类型:

let secondValue: string = <string>someObject[key];
Run Code Online (Sandbox Code Playgroud)

或者我的情景是不可能的--noImplicitAny

typescript

285
推荐指数
11
解决办法
16万
查看次数

事务性保存而不调用更新方法

我有一个使用@Transactional注释的方法.我从Oracle DB中检索一个对象,更改一个字段,然后从该方法返回.我忘了保存对象,但发现无论如何都要更新数据库.

的applicationContext

<tx:annotation-driven />
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我的方法

@Transactional
public void myMethod(long id) {
    MyObject myObj = dao.getMstAttributeById(id);
    myObj.setName("new name");
    //dao.update(myObj);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么MyObject被持久化到数据库?

java spring hibernate transactional

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

为什么声明InputStream.close()会抛出IOException?

java.io.InputStream.close()声明该方法抛出一个IOException.在什么情况下会抛出这样的例外?

编辑:是的我已经阅读了javadoc.任何人都可以比"发生I/O错误时"更具体吗?关闭时会发生什么 I/O错误InputStream

java exception ioexception

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

Java 9 Module系统是否支持可选的依赖项?

背景

在maven中,工件可以声明依赖关系

<optional>true</optional>
Run Code Online (Sandbox Code Playgroud)

这意味着不需要依赖,但如果存在则可以使用.

模块系统的状态似乎指定模块只能读取它所需的模块.

问题

  • Java 9模块系统确实不支持可选的依赖项吗?
  • 为什么不?
  • Java 9模块系统提供了哪些可选依赖项替代方案?

用例

我有一个框架,集成了应用程序可能使用或不使用的各种库.目前,该框架是一个单独的JAR,它反映了类路径以跳过缺少库的集成代码.

我想我们可以将它分成每个配置的单独模块,但这会导致JAR数量的组合爆炸,因为我们不仅需要为每个可选依赖项单独的JAR,而且对于大多数对都需要单独的JAR可选的依赖项......

java java-platform-module-system java-9

23
推荐指数
1
解决办法
1298
查看次数

eclipse调试器:附加maven依赖项的源代码?

在myEclipse 8中调试我们的webapp时,我想使用maven-managed依赖项的源代码.

我已经设法将源附加到"Maven Managed Dependencies"类路径容器中的库,即当我从依赖项打开一个类文件时(例如使用Ctrl-Shift-T),我看到了源代码.

但是,当我为我的tomcat定义服务器连接器时,将wepapp部署到它,并以调试模式启动它,并且在同一个类的断点上执行暂停,编辑器窗格仅显示文本"source not found",以及按钮编辑"源查找路径".我试图手动添加"Maven Managed Dependencies"类路径容器,只是被告知"使用maven项目设置来配置依赖性解析".但是,我在该属性窗格中看不到有用的设置......

我该如何附上这些来源?我知道这适用于m2e插件和wtp,但我宁愿避免说服我的团队其他人切换插件......

eclipse debugging tomcat maven-2

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

Hibernate:在Criteria API中启用延迟抓取

我正在针对域模型编写查询,其中(无论出于何种原因)一对多关联与lazy ="false"映射.在我的特定查询中,我宁愿懒惰地获取该集合,因为我不关心它的内容.如何为我的特定查询重新启用懒惰?这有可能吗?

到目前为止,我看了一下Criteria.setFetchMode,但FetchMode.LAZY仅仅是一个被弃用的别名FetchMode.SELECT......

更改映射可能是理想的,但我宁愿不冒风险影响现有查询.

编辑:我们使用Hibernate 3.3.2

hibernate

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

Collections.max签名的说明

当我偶然发现这个方法签名时,我正在阅读一篇关于Java Generics的文章:

static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll);
Run Code Online (Sandbox Code Playgroud)

我没有得到的部分是我们需要的原因

Collection<? extends T> coll
Run Code Online (Sandbox Code Playgroud)

不会

Collection<T> coll
Run Code Online (Sandbox Code Playgroud)

做得好吗?

有人可以解释为什么以下签名不够吗?

static <T extends Object & Comparable<? super T>> T max(Collection<T> coll);
Run Code Online (Sandbox Code Playgroud)

提前感谢您的回复.这让我困惑了很长一段时间..

java generics

14
推荐指数
1
解决办法
240
查看次数

如何使用XSD中的Bean Validation注释生成Java对象?

我正在编写一个EJB作为契约第一个SOAP服务,我从WSDL生成java类和SEI.WSDL指定了几种带约束的类型(最大长度,模式等).生成的java类是JAXB注释但缺少约束元数据,因为JAXB注释不支持这些.这意味着只有在通过SOAP端点调用服务时才会发生输入验证.

问题是,当EJB被另一个EJB调用时,验证被绕过,因为它位于XML堆栈中.我想禁用XML Schemavalidation并使用Bean Validation,因此验证适用于调用EJB的两种方式(SOAP和RMI).

问题:如何在Java类上生成JAXB注释以及Bean Validation注释?

java xml validation annotations jaxb

12
推荐指数
2
解决办法
5051
查看次数

JPA:扩展持久化上下文与分离实体

似乎有两种模式可以实现跨越几个带有JPA的http请求的业务事务:

  1. 具有分离实体的每个请求的实体管理器
  2. 扩展持久化上下文

这些模式各自的优势是什么?何时应该优先考虑?

到目前为止,我想出了:

  • 扩展的持久化上下文保证对象标识等同于数据库标识,简化了编程模型,并可能消除了为实体实现equals的需要
  • 分离的实体比扩展的持久性上下文需要更少的内存,因为持久性上下文还必须存储实体的先前状态以进行更改检测
  • 不再引用的分离实体有资格进行垃圾回收; 必须首先明确地分离持久对象

但是,没有任何JPA的实践经验我相信我已经错过了一些重要的东西,因此这个问题.

如果重要:我们打算使用Hibernate 3.6支持的JPA 2.0.

编辑:我们的视图技术是JSF 2.0,在EJB 3.1容器中,带有CDI,可能还有Seam 3.

java hibernate jpa-2.0

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

颠覆:归咎于过去的修订

我喜欢Subversion的责备操作(它为源文件中的每一行显示最后更改它的提交).唉,我们最近重新格式化了我们的整个源代码,现在责怪只是表明每一行最后都被这个提交修改过了.

我可以以某种方式指示责备在该提交之前最后一次更改该行时向我显示吗?如果我可以在不离开日食的情况下做到这一点(我们使用subclipse).

我尝试在重新格式化之前将工作副本切换到修订版本,并在那里执行"显示注释",但仍显示重新格式化的最后修改的每一行...

java eclipse subclipse svn

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