Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。


21
使用带有Java的Selenium WebDriver切换选项卡
将Selenium WebDriver与JAVA结合使用。我试图自动执行一项功能,在该功能中我必须打开一个新选项卡,然后在此处执行一些操作,然后返回到上一个选项卡(父项)。我使用了开关手柄,但无法正常工作。奇怪的是,两个选项卡具有相同的窗口句柄,因此我无法在两个选项卡之间切换。 但是,当我尝试使用其他Firefox窗口时,它可以工作,但是对于选项卡,它却无法工作。 请帮我。如何切换标签。或者在不使用窗口句柄的情况下如何切换选项卡,就我而言,这两个选项卡都是相同的。 (我观察到,当您在同一窗口中打开不同的选项卡时,窗口句柄保持不变)

8
如何在适配器中启动Activity?
我有一个带有自定义适配器的ListActivity,并且在每个视图内部,它可能都有一些按钮需要在其中实现OnClickListener。我需要OnClickListener在适配器中实现。但是,我不知道如何像startActivity()或那样调用函数setResult()。由于适配器不会扩展到活动。 那么解决这个问题的最佳方法是什么? 谢谢。

4
休眠错误:此类的ID必须在调用save()之前手动分配:
由以下原因引起:org.springframework.orm.hibernate3.HibernateSystemException:此类的ID必须在调用save()之前手动分配:com.rfid.model.Role; 嵌套的异常是org.hibernate.id.IdentifierGenerationException:此类的ID必须在调用save()之前手动分配:com.rfid.model.Role 在org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:676) 在org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) 在org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424) 在org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) 在org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:748) 在com.wfos.engine.wrapper.domain.impl.WrapperImpl.save(WrapperImpl.java:159) ...更多47 由以下原因引起:org.hibernate.id.IdentifierGenerationException:此类的id必须在调用save()之前手动分配:com.rfid.model.Role 在org.hibernate.id.Assigned.generate(Assigned.java:53) 在org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) 在org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) 在org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) 在org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117) 在org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) 在org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:685) 在org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:677) 在org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:673) 在org.springframework.orm.hibernate3.HibernateTemplate $ 16.doInHibernate(HibernateTemplate.java:751) 在org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419) ...另外50 WARN [21:14:21](CommonsLoggingOutput.java:59):--错误:batchId [1]消息[java.lang.reflect.UndeclaredThrowableException] 我的课是这样的: @Entity @javax.persistence.Table(name="Role") @Table(appliesTo = "Role") public class Role { @Id @Column(name="U_id") public String U_id; public String U_pwd; public String U_account; public String …

4
如何将以下json字符串转换为java对象?
我想将以下JSON字符串转换为Java对象: String jsonString = "{ "libraryname":"My Library", "mymusic":[{"Artist Name":"Aaron","Song Name":"Beautiful"}, {"Artist Name":"Britney","Song Name":"Oops I did It Again"}, {"Artist Name":"Britney","Song Name":"Stronger"}]}" 我的目标是轻松访问它,例如: (e.g. MyJsonObject myobj = new MyJsonObject(jsonString) myobj.mymusic[0].id would give me the ID, myobj.libraryname gives me "My Library"). 我听说过杰克逊,但是由于涉及“ mymusic”列表,我不知道如何使用它来适应我拥有的json字符串,因为它不仅仅是键值对。如果杰克逊不是最好的选择,我该如何用杰克逊完成?
70 java  json  jackson 

3
如何使用ANTLR4创建AST?
我一直在搜索很多有关此信息,但找不到任何能真正帮助我构建AST的有用信息。我已经知道ANTLR4不会像以前的ANTLR3那样构建AST。每个人都说:“嘿,请使用访客!”,但是我找不到任何示例或有关如何执行此操作的详细说明... 我的语法必须像C,但是每个命令都用葡萄牙语(葡萄牙语编程语言)编写。我可以使用ANTLR4轻松生成解析树。我的问题是:创建AST现在需要做什么? 顺便说一句,我正在使用Java和IntelliJ ... EDIT1:我能得到的最接近的答案是该主题:是否有一个简单的示例使用antlr4从Java源代码创建AST并提取方法,变量和注释? 但是它只打印访问方法的名称。 由于第一次尝试对我不起作用,所以我尝试使用ANTLR3的本教程,但我不知道如何使用StringTamplate而不是ST ... 阅读《权威ANTLR 4参考》一书,我也找不到与AST相关的任何内容。 EDIT2:现在我有一个类来创建DOT文件,我只需要弄清楚如何正确使用访问者


10
模拟Java枚举以添加值以测试失败情况
我有一个或多或少像这样的枚举开关: public static enum MyEnum {A, B} public int foo(MyEnum value) { switch(value) { case(A): return calculateSomething(); case(B): return calculateSomethingElse(); } throw new IllegalArgumentException("Do not know how to handle " + value); } 并且我希望测试涵盖所有行,但是由于期望代码能够处理所有可能性,因此如果没有在开关中使用其相应的case语句,则无法提供值。 扩展枚举以添加额外的值是不可能的,并且仅模拟equals方法返回false也不会起作用,因为生成的字节码使用了幕后的跳转表来进行适当处理...所以我想使用PowerMock之类的东西也许可以实现一些黑魔法。 谢谢! 编辑: 当我拥有枚举时,我以为我可以在值上添加一个方法,从而完全避免切换问题。但是我仍然要提这个问题,因为它仍然很有趣。


12
设置要由数据库生成的JPA时间戳列?
在我的SQL Server 2000数据库中,我有一个DATETIME名称类型lastTouched设置getdate()为默认值/绑定的时间戳记(功能不在数据类型中)。 我正在使用Netbeans 6.5生成的JPA实体类,并将其包含在我的代码中 @Basic(optional = false) @Column(name = "LastTouched") @Temporal(TemporalType.TIMESTAMP) private Date lastTouched; 但是,当我尝试将对象放入数据库时​​, javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.generic.Stuff.lastTouched 我尝试过将@Basicto设置为(optional = true),但这引发了一个异常,说数据库不允许null该TIMESTAMP列的值,而这是设计不允许的。 ERROR JDBCExceptionReporter - Cannot insert the value NULL into column 'LastTouched', table 'DatabaseName.dbo.Stuff'; column does not allow nulls. INSERT fails. …

1
如何在JPA中定义单向OneToMany关系
我在JPA中使用实体映射存在以下问题。我有两个实体,第一个是Lookup,第二个是Text,它表示实体的翻译。现在,我需要将Lookup绑定到Text,但是我不希望Text引用Lookup。更复杂的是,Text在此关系中不使用其主键,而是在TXTHEAD_CODE列中定义的元代码 。 Lookup.java @Entity @Table(name = "DATREG") public class Lookup implements PersistableEntity { @Id @Column(name = "DATREG_META_CODE") private String metaCode; @OneToMany @JoinTable(name="TXT", joinColumns=@JoinColumn(name="DATREG_META_CODE", referencedColumnName="TXTHEAD_CODE"), inverseJoinColumns=@JoinColumn(name="DATREG_META_CODE")) private List<Text> text; Text.java @Entity @Table(name = "TXT") public class Text { @Id @Column(name = "TXT_ID") private Long id; @Column(name = "TXTHEAD_CODE") private String code; …
70 java  jpa  jpa-2.0 

6
将SHA1和RSA与java.security.Signature和MessageDigest和Cipher结合使用
我试图了解Java java.security.Signature类的作用。如果我计算一个SHA1消息摘要,然后使用RSA对该摘要进行加密,则得到的结果与要求Signature类对同一事物进行签名的结果不同: // Generate new key KeyPair keyPair = KeyPairGenerator.getInstance("RSA").generateKeyPair(); PrivateKey privateKey = keyPair.getPrivate(); String plaintext = "This is the message being signed"; // Compute signature Signature instance = Signature.getInstance("SHA1withRSA"); instance.initSign(privateKey); instance.update((plaintext).getBytes()); byte[] signature = instance.sign(); // Compute digest MessageDigest sha1 = MessageDigest.getInstance("SHA1"); byte[] digest = sha1.digest((plaintext).getBytes()); // Encrypt digest …

3
使用Java 8流将List <Double>相加是否真的需要mapToDouble()?
据我所知,List&lt;Double&gt;使用Java 8流求和的方法是: List&lt;Double&gt; vals = . . . ; double sum = vals.stream().mapToDouble(Double::doubleValue).sum(); 在我mapToDouble(Double::doubleValue)看来,这似乎很不礼貌-只是应该放弃lambda和数据流的样板“仪式”。 最佳实践告诉我们,List实例比数组更可取,但是对于这种求和,数组看起来更干净: double[] vals = . . . ; double sum = Arrays.stream(vals).sum(); 当然,可以做到这一点: List&lt;Double&gt; vals = . . . ; double sum = vals.stream().reduce(0.0, (i,j) -&gt; i+j); 但这reduce(....)比更长sum()。 我知道这与需要围绕Java的非对象原语对流进行改造的方式有关,但是,我在这里还缺少什么吗?有什么方法可以压缩自动装箱以使其更短吗?还是这只是当前的最新状态? 更新-答案摘要 以下是答案的摘要。我在这里进行总结时,我敦促读者自己仔细阅读答案。 @dasblinkenlight解释说,由于Java历史中更进一步的决策,特别是在实现泛型的方式及其与非对象原语的关系方面,总是需要某种类型的拆箱。他指出,从理论上讲,编译器可以进行拆箱操作并允许使用更简短的代码,但这尚未实现。 @Holger显示了一个非常接近我所要表达的解决方案: double sum = …

4
用Mockito调用回调
我有一些代码 service.doAction(request, Callback&lt;Response&gt; callback); 我如何使用Mockito捕获回调对象,并调用callback.reply(x)
70 java  testing  mockito 

3
Collectors.toList()返回哪种List <E>?
我正在阅读Lambda状态:图书馆版,但对以下陈述感到惊讶: 在Streams部分下,有以下内容: List&lt;Shape&gt; blue = shapes.stream() .filter(s -&gt; s.getColor() == BLUE) .collect(Collectors.toList()); 该文件没有说明shapes实际的内容,我也不知道它是否重要。 让我感到困惑的是:List此代码块返回什么样的具体代码? 它将变量分配给List&lt;Shape&gt;,这是完全可以的。 stream()也不filter()决定要使用哪种列表。 Collectors.toList()均未指定的具体类型List。 那么,这里使用的是什么具体类型(子类)List?有保证吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.