Questions tagged «java»

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


4
比较装箱的Long值127和128
我想使用条件比较两个Long对象的值if。当这些值小于128时,if条件将正常工作,但是当这些值大于或等于128时,比较将失败。 例: Long num1 = 127; Long num2 = 127; if (num1 == num2) { // Works ok } 上面代码的比较正常进行,但是下面代码失败: Long num1 = 128; Long num2 = 128; if (num1 == num2) { // Does NOT work } 为什么将Long变量的值大于127进行比较存在问题?如果将变量数据类型更改为长原语,则比较适用于所有情况。

9
如何使用File对象获取文件目录?
考虑代码: File file = new File("c:\\temp\\java\\testfile"); testfile是文件,它可能存在或可能不存在。我想c:\\temp\\java\\使用File对象获取目录。我该怎么做呢?
110 java  file 

5
为什么枚举的构造函数不能访问静态字段?
为什么枚举的构造函数不能访问静态字段和方法?这对于一个类是完全有效的,但对于枚举是不允许的。 我正在尝试将枚举实例存储在静态Map中。考虑下面的示例代码,它允许通过abbreivation查找: public enum Day { Sunday("Sun"), Monday("Mon"), Tuesday("Tue"), Wednesday("Wed"), Thursday("Thu"), Friday("Fri"), Saturday("Sat"); private final String abbreviation; private static final Map<String, Day> ABBREV_MAP = new HashMap<String, Day>(); private Day(String abbreviation) { this.abbreviation = abbreviation; ABBREV_MAP.put(abbreviation, this); // Not valid } public String getAbbreviation() { return abbreviation; } public static Day …
110 java  enums 

3
为什么在Java 8中split有时会在结果数组的开头删除空字符串?
在Java 8之前,当我们分割空字符串时 String[] tokens = "abc".split(""); 拆分机制将在标有的位置拆分 | |a|b|c| 因为""每个字符前后都有空白。因此,结果将首先生成此数组 ["", "a", "b", "c", ""] 稍后将删除结尾的空字符串(因为我们没有为limit参数明确提供负值),因此它将最终返回 ["", "a", "b", "c"] 在Java 8中,拆分机制似乎已更改。现在当我们使用 "abc".split("") 我们将得到["a", "b", "c"]数组而不是数组,["", "a", "b", "c"]因此看起来开始时的空字符串也被删除了。但是这个理论失败了,因为 "abc".split("a") 在start处返回带有空字符串的数组["", "bc"]。 有人可以解释一下这是怎么回事,以及拆分规则在Java 8中是如何变化的吗?
110 java  regex  split  java-8 

10
Android:复选框监听器
我想将Listener放在上CheckBox。我寻找信息,它是这样的: satView = (CheckBox)findViewById(R.id.sateliteCheckBox); satView.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { if (isChecked){ // perform logic } } }); 问题在于Eclipse认为它是OnCheckedChangeListenerfor的RadioGroup,并且不起作用。我怎样才能解决这个问题?


16
Android-防止启动时出现白屏
众所周知,许多Android应用在首次Activity聚焦之前都会非常短暂地显示白屏。在以下情况下会出现此问题: 扩展全局Application类并在其中执行主要初始化的Android应用。该Application 对象总是在第一个对象之前创建Activity(这可以在调试器中观察到),因此这很有意义。这是我的案件延误的原因。 在初始屏幕之前显示默认预览窗口的Android应用。 设置android:windowDisablePreview = "true"显然在这里不起作用。我也无法将初始屏幕的父主题设置Theme.Holo.NoActionBar为此处所述,因为[不幸的是]我的初始屏幕使用了ActionBar。 同时,未扩展Application类的应用程序在启动时不会显示白屏。 问题是,理想情况下,在Application对象中执行的初始化需要在显示第一个对象之前进行Activity。所以我的问题是,如何在不使用Application对象的情况下在应用启动时执行这些初始化?我想可能使用Thread或Service? 这是一个有趣的问题。我无法以通常的方式绕过它(通过设置NoActionBar主题),因为可悲的是我的启动画面实际上ActionBar由于某种不相关的原因而出现故障。 注意: 我已经提到以下问题: 如何在应用启动时修复白屏? Android初始画面是白色的吗? 闪屏前的白屏 Android应用启动时为白色背景 为什么开始在Android中运行应用程序时出现白屏1秒钟? 参考文献: 模式–启动屏幕。 品牌启动画面:Android的新功能。 正确的飞溅屏幕。

7
如何检查int是否为null
我有一个名为的对象Person。 它具有几个属性; int id; String name; 我将一个人对象设置为Person p = new Person(1,"Joe");。 1.)我需要检查对象是否不为null;以下表达式正确吗? if (person == null){ } Or if(person.equals(null)) 2.)我需要知道ID是否包含一个Int。 if(person.getId()==null){} 但是,java不允许这样做。我该如何检查?
110 java  int 

3
JAX-RS中的提供者是什么意思?
谁能向我解释什么是JAX-RS提供程序,什么是'@Provider'注释?我一直在阅读文档,但无法理解。 如果存在为传入请求提供服务的资源类,提供者将做什么?当我创建一个持久性资源类(不是每个请求一个)时,它们与单例资源类有何不同?还是那些课程也是提供者?
110 java  jersey  jax-rs 

3
在JPA / Hibernate中正确使用flush()
我正在收集有关flush()方法的信息,但是我不清楚何时使用它以及如何正确使用它。从我的阅读中,我的理解是持久性上下文的内容将与数据库同步,即发布未完成的语句或刷新实体数据。 现在,我得到下列设想两个实体A和B(在一比一的关系,而不是由JPA执行或模拟)。A具有手动设置的复合PK,还具有自动生成的IDENTITY字段recordId。这recordId应B作为的外键写入到实体A。我要存钱,A并且要B进行一次交易。问题是自动生成的值A.recordId是不是在事务内可用,除非我做的一个显式调用em.flush()打完电话后em.persist()上A。(如果我有一个自动生成的IDENTITY PK,那么该值将直接在实体中更新,但是这里不是这种情况。) 可以em.flush()在一个事务中使用时造成什么伤害?

1
Java Logging框架中的标记是什么?使用它们的原因是什么?
第一次阅读时我听说标记: http://slf4j.org/faq.html 我检查Logger对象的可用方法: http://www.slf4j.org/api/org/slf4j/Logger.html http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html 并找到接口: http://www.slf4j.org/api/org/slf4j/Marker.html http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html 我可以从以下获得更深入的信息: http://logback.qos.ch/manual/filters.html 但是仍然很困惑...请注意,我问为什么,而不是如何使用它们,所以这不是重复的: 在SLF4J / Logback中使用标记的最佳实践 UPDATE似乎当您使用标记时,您还需要编写自定义Java代码,而不是在XML或.property文件中进行配置... 更新2来自http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN"); logger.error(notifyAdmin, "This is a serious an error requiring the admin's attention", new Exception("Just testing"));
110 java  logging  log4j  slf4j  logback 

5
如何在Java中从控制台读取单个字符(随着用户键入字符)?
当用户在Java中键入字符时,是否有一种简单的方法可以从控制台读取单个字符?可能吗?我尝试了这些方法,但是它们都在等待用户按下Enter键: char tmp = (char) System.in.read(); char tmp = (char) new InputStreamReader(System.in).read (); char tmp = (char) System.console().reader().read(); // Java 6 我开始认为System.in在按下Enter之前不知道用户输入。
110 java  input  console 


12
如何在我的约会中添加分钟
我有这个日期对象: SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm"); Date d1 = df.parse(interviewList.get(37).getTime()); d1的值为 Fri Jan 07 17:40:00 PKT 2011 现在,我想在上述日期增加10分钟。 Calendar cal = Calendar.getInstance(); cal.setTime(d1); cal.add(Calendar.MINUTE, 10); String newTime = df.format(cal.getTime()); newTime更改的价值,2011-50-07 17:50 但应该是07-01-2011 17:50。 它可以正确地增加分钟,但它也会更改月份,不知道为什么!

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.