Questions tagged «java»

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

7
Java泛型类型擦除:何时以及何时发生?
我在Oracle网站上了解了Java的类型擦除。 什么时候出现类型擦除?在编译时还是在运行时?该类何时加载?该类何时实例化? 许多站点(包括上面提到的官方教程)都说类型擦除在编译时发生。如果在编译时完全删除了类型信息,那么在没有类型信息或错误类型信息的情况下调用使用泛型的方法时,JDK如何检查类型兼容性? 考虑以下示例:说说类A有一个方法empty(Box<? extends Number> b)。我们编译A.java并获得类文件A.class。 public class A { public static void empty(Box<? extends Number> b) {} } public class Box<T> {} 现在,我们创建另一个类B,该类empty使用非参数化参数(原始类型)调用该方法:empty(new Box())。如果我们编译B.java与A.class在类路径中,javac的是足够聪明提出一个警告。因此A.class ,其中存储了一些类型信息。 public class B { public static void invoke() { // java: unchecked method invocation: // method empty in class A is applied to …

9
Java:一个文件中包含多个类声明
在Java中,您可以在一个文件中定义多个顶级类,条件是其中最多一个是公共的(请参见JLS§7.6)。参见以下示例。 是否有此技术整洁名(类似于inner,nested,anonymous)? JLS说,系统可能会强制执行这些二级类不能为的限制referred to by code in other compilation units of the package,例如,它们不能被视为程序包专用。这真的在Java实现之间有所改变吗? 例如,PublicClass.java: package com.example.multiple; public class PublicClass { PrivateImpl impl = new PrivateImpl(); } class PrivateImpl { int implementationData; }
238 java  class 


6
在单元测试期间填充Spring @Value
我正在尝试为程序中用于验证表单的简单bean编写单元测试。Bean带有注释,@Component并具有使用初始化的类变量 @Value("${this.property.value}") private String thisProperty; 我想为此类中的验证方法编写单元测试,但是,如果可能的话,我希望在不利用属性文件的情况下这样做。我这样做的原因是,如果我从属性文件中提取的值发生更改,我希望这不会影响我的测试用例。我的测试用例正在测试验证值的代码,而不是值本身。 有没有一种方法可以在测试类中使用Java代码来初始化Java类,并在该类中填充Spring @Value属性,然后使用该属性进行测试? 我没有找到这个如何,这似乎是接近,但依然采用的是属性文件。我宁愿全部都是Java代码。

4
Java注释成员可以使用哪些类型?
今天,我想按照本文档创建我的第一个注释界面,但出现此编译器错误 Invalid type for annotation member": public @interface MyAnnotation { Object myParameter; ^^^^^^ } 显然Object不能用作注释成员的类型。不幸的是,我找不到有关可以普遍使用的类型的任何信息。 我通过反复试验发现了这一点: String →有效 int →有效 Integer →无效(令人惊讶地) String[] →有效(令人惊讶) Object →无效 也许有人可以阐明实际允许的类型以及原因。
238 java  annotations 

25
生成签名的APK时出现':app:lintVitalRelease'错误
我试图将我的APK上传到Google Play上,并遇到错误消息:“您上传了可调试的APK。出于安全原因,您需要先禁用调试功能,然后才能在Google Play中发布。了解有关可调试的APK的更多信息。” 然后,我android:debuggable="false"在清单中写下并再次尝试。我遇到了相同的错误,因此我将模块的build变体设置为release,并尝试再次生成apk,但是这次生成了此错误: Error:Gradle: Execution failed for task ':app:lintVitalRelease'. Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified by lint, or modify your build script as follows: ... android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue …
238 java  android  gradle 

3
Javadoc链接到其他类中的方法
目前,我正在使用此Javadoc语法引用其他类中的方法: @see {@link com.my.package.Class#method()} 根据我从文档中了解到的,这是执行此操作的正确方法。但是现在到了有趣的部分,还是令人沮丧。当我生成此javadoc时,首先出现以下错误: warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}" warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}" warning - Tag @see: reference not found: {@link com.my.package.Class#method()} 生成的HTML代码是: "," <code>com.my.package.Class#method()}</code> "," 当然,我没有任何联系。谁能告诉我发生了什么,以及有关如何解决此问题的任何提示? 根据ASCII表,用于wold的字符123和64分别表示{和@,因此,根据文档,当此语法正确时,为什么这些字符无效?
238 java  javadoc 

10
Java:Unix时间戳记中的日期
我需要将unix时间戳转换为日期对象。 我尝试了这个: java.util.Date time = new java.util.Date(timeStamp); 时间戳值为: 1280512800 日期应该是“ 2010/07/30-22:30:00”(因为我是通过PHP获得的),但我却得到了Thu Jan 15 23:11:56 IRST 1970。 应该怎么做?
237 java  unix  timestamp 

18
为什么java.util.Set没有get(int index)?
我确信这是有充分理由的,但是有人可以解释一下为什么java.util.Set缺少接口get(int Index)或任何类似get()方法吗? 集合似乎很适合放入东西,但是我找不到从其中检索单个项目的优雅方法。 如果我知道我想要第一个项目,则可以使用set.iterator().next(),但否则似乎必须强制转换为Array才能在特定索引处检索项目? 从集合中检索数据的适当方法是什么?(除了使用迭代器之外) 我敢肯定,将其排除在API之外的事实意味着有充分的理由不这样做-有人可以启发我吗? 编辑: 这里有一些非常好的答案,有的说“更多的上下文”。具体情况是dbUnit测试,在这里我可以合理地断言从查询返回的集合只有1个项目,而我试图访问该项目。 但是,如果没有这种情况,这个问题会更有效,因为它仍然更加集中: set和list有什么区别。 感谢所有以下出色的答案。

18
好的Java图形算法库?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 有没有人对任何适用于Graph算法的Java库有丰富的经验。我已经尝试过JGraph并发现它还可以,并且Google中有很多不同的代码。人们实际上在生产代码中成功使用了哪些东西,或者会推荐什么? 需要澄清的是,我不是在寻找可生成图形/图表的库,而是在寻找一种可用于图形算法的库,例如最小生成树,Kruskal算法的节点,边等。理想情况下,它具有一些良好的算法/数据一个漂亮的Java OO API中的结构。
237 java  algorithm  graph 


22
如何按多个字段比较对象
假设您有一些对象,这些对象具有可以通过以下方式比较的多个字段: public class Person { private String firstName; private String lastName; private String age; /* Constructors */ /* Methods */ } 因此,在此示例中,当您询问是否: a.compareTo(b) > 0 您可能会问a的姓氏是否早于b的姓氏,或者a是否早于b,等等。 在这些对象之间进行多重比较而不增加不必要的混乱或开销的最干净的方法是什么? java.lang.Comparable 界面仅允许一个字段进行比较 在我看来compareByFirstName(),添加许多比较方法(即,compareByAge()等)比较混乱。 那么最好的方法是什么呢?
237 java  oop 

18
PersistentObjectException:JPA和Hibernate传递以持久保留的分离实体
我有一个JPA持久对象模型,其中包含多对一关系:一个Account具有许多Transactions。A Transaction有一个Account。 这是一段代码: @Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER) private Account fromAccount; .... @Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount") private Set<Transaction> transactions; 我能够创建一个Account对象,向其中添加事务,并Account正确地持久保存该对象。但是,当我创建事务时,使用现有的已经持久化的Account并持久化该Transaction,我得到一个异常: 由以下原因引起:org.hibernate.PersistentObjectException:传递给持久对象的分离实体:org.hibernate.event.internal.DefaultPersistEventListener.onPersist上的com.paulsanwald.Account(DefaultPersistEventListener.java:141) 因此,我能够保留Account包含交易的,但不能保留包含的交易Account。我以为这是因为Account可能未附加,但是此代码仍然给我同样的异常: if (account.getId()!=null) …
237 java  hibernate  jpa  entity  persist 

6
Android在setvisibility(view.Gone)的同时添加简单的动画
我已经设计了一个简单的布局。我已经完成了没有动画的设计,但是现在我想在textview click事件时添加动画,但我不知道如何使用它。我的xml设计看起来不错还是不好?任何建议,将不胜感激。 我的XML <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:longClickable="false" android:orientation="vertical" android:weightSum="16" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:orientation="vertical" android:background="#00DDA0" android:layout_weight="3" > </LinearLayout> <TextView android:id="@+id/Information1" android:layout_width="match_parent" android:layout_height="1dp" android:text="Child Information" android:background="#0390BE" android:layout_weight="0.75" android:textColor="#FFFFFF" android:layout_gravity="center|fill_horizontal"/> <LinearLayout android:id="@+id/layout1" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="8.5" android:background="#BBBBBB" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="TextView" /> </LinearLayout> <TextView android:id="@+id/Information2" android:layout_width="match_parent" …

6
为什么Java泛型不支持基本类型?
为什么Java中的泛型只能用于类,而不能用于原始类型? 例如,这可以正常工作: List<Integer> foo = new ArrayList<Integer>(); 但这是不允许的: List<int> bar = new ArrayList<int>();
236 java  generics  primitive 

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.