小编kos*_*tja的帖子

为什么java中不允许赋值为'this'?

我从编译器得到的错误是"赋值的左侧必须是变量".我的用例是深度复制,但并不真正相关.

在C++中,可以分配给*this.

问题不在于如何规避任务this.这很简单,但是决定不做this变量的背后有什么理由.

原因是技术性的还是概念性的?

我的猜测到目前为止 - 在随机方法中重建Object的可能性容易出错(概念性),但技术上可行.

编辑请限制"因为Java规范如此说"的变化.我想知道决定原因

java reference this variable-assignment

20
推荐指数
3
解决办法
9805
查看次数

JPA和默认锁定模式

使用JPA,我们可以使用手动OPTIMISTICPESSIMISTIC锁定来处理事务中的实体更改.

我想知道如果我们没有指定这两种模式中的一种,JPA如何处理锁定?没有使用锁定模式?

如果我们没有定义显式锁定模式,数据库完整性是否会丢失?

谢谢

java jpa transactions

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

如何使用CDI进行方法参数注入?

是否可以使用CDI将参数注入方法调用?预期的行为类似于现场注入.查找首选生产者并使用产品.

我想做的是:

public void foo(@Inject Bar bar){
  //do stuff
} 
Run Code Online (Sandbox Code Playgroud)

或者这个(使用较少混淆的sytax):

public void foo(){
  @Inject 
  Bar bar;
  //do stuff
} 
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,此语法都是非法的 还有其他选择吗?如果不是 - 如果有可能,出于某种原因,这会是一个坏主意吗?

谢谢

编辑 - 我可能已经使我的要求不够清楚 - 我希望能够直接调用该方法,将bar变量的初始化留给容器.JörnHorstmann和Perception的回答表明这是不可能的.

java dependency-injection cdi jboss-weld

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

如何以编程方式检索持久性单元使用的数据源

...没有实际阅读和解析 persistence.xml

我可以EntityManager使用它的工厂属性检索一个持久性单元的名称.我可以使用jboss-as-controller-client检索可用的数据源.但我发现没有API会给我一个特定的数据源EntityManager.

一个String一个名字就足够了.

谢谢

我在JBoss 7.1.1.Final上使用Hibernate 4.0.1.Final而不是JPA 2.

编辑:我想尽可能避免从JPA转向Hibernate API.

编辑:奥古斯托的解决方案工作,我有一些关于细节的注释:EM的铸造因为ClassCastException:( org.jboss.as.jpa.container.TransactionScopedEntityManager cannot be cast to org.hibernate.ejb.EntityManagerImpl)而无效,但它适用于检索到的工厂.所以我省略了第1步.

我也找不到从实例中检索数据源名称的方法.所以我不得不满足于目录名称:connectionProvider.getConnection().getCatalog();

hibernate jpa java-ee jpa-2.0 jboss7.x

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

是否有将JUnit测试标记为挂起的一般方法?

在进入TDD循环之前,我想草拟出需要实现的测试 - 即用口头名称编写空的测试方法.

不幸的是,我还没有找到一种"将它们涂成黄色"的方法 - 将它们标记为等待JUnit.我可以让他们失败或通过.现在我通过投掷让他们失败Exception,但我宁愿使用pending来自rspec 的等价物.

在JUnit或"相邻"库中有这样的选项吗?

java tdd junit junit4

19
推荐指数
1
解决办法
6927
查看次数

如何从命令行确定Maven工件是否在我的repo中?

我想从命令行检查是否groupId.artifactId.version可以在存储库中找到某个coordinate().

如果可能,可以使用部分坐标(例如artifactId.version)吗?我可以指定回购吗?

我不要求解决方法 - 我可以简单地在我的本地仓库中启动文件搜索,或者在POM中输入工件并等待错误,或者安装Nexus并在UI上搜索...

这是一个方便的事情 - 一旦在CLI上,能够快速检查将是很好的.

search artifacts maven

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

什么时候java比c ++快(或者什么时候JIT更快然后预编译)?

可能重复:
JIT编译器与脱机编译器

我听说在某些情况下,由于JIT优化,Java程序或java程序的某些部分能够比C++(或其他预编译代码)中的"相同"代码执行得更快.这是因为编译器能够确定某些变量的范围,避免一些条件并在运行时拉出类似的技巧.

你能给出一个(或更好 - 一些)例子吗?并且可能概述了编译器能够优化字节码超出预编译代码可能性的确切条件?

注意:这个问题不是将Java与C++进行比较.它关于JIT编译的可能性.请不要燃烧.我也不知道有任何重复.如果你是的话请指出来.

java compiler-construction optimization performance jit

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

如何优雅地交换Map中的键和值

我已经知道如何以艰难的方式完成它并使其工作 - 迭代条目并"手动"交换.但我想知道,像这么多任务一样,这个问题能否以更优雅的方式解决.

我读过这篇文章,遗憾的是它没有优雅的解决方案.我也没有可能使用任何花哨的Guava BiMaps或jdk以外的任何东西(已经定义了项目堆栈).

我可以假设我的地图是双射的,顺便说一下:)

java collections hashmap

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

在xsd冗余中使用="可选"吗?

如果我定义了use一个xs:attributeas optional或者根本没有定义它,它是否对任何目的(验证,绑定......)都很重要?

如果它是多余的,为什么要提供它?

xml schema xsd

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

在eclipse中对字段进行一致的重命名

在重构字段时,eclipse中的默认行为是仅重命名字段,使访问器方法名称不一致.

Alt+Shift+R两次显示"重命名对话框",我可以选择是否应重命名访问者(作为两个单独的选项).这减轻了手动重命名访问器的痛苦,但仍然非常不理想,包括按下3个快捷方式,而不是使用就地重命名,加上我平常的健忘...... :)

我想不出为什么我不希望我的重构保持一致的原因,那么有没有办法让访问者重命名默认行为?只要有效,我就可以调整神秘的设置并设置模糊的标志.

谢谢

java eclipse refactoring

15
推荐指数
1
解决办法
1142
查看次数