Questions tagged «java»

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


6
如何通过常量Java为注释提供值
我认为这在Java中可能无法实现,因为注释及其参数在编译时已解决。我有一个如下的界面, public interface FieldValues { String[] FIELD1 = new String[]{"value1", "value2"}; } 和另一类, @SomeAnnotation(locations = {"value1", "value2"}) public class MyClass { .... } 我用注解标记了许多类,我想知道是否可以避免在每个注解中指定字符串,而宁愿使用 @SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... } 但是,这会产生诸如注释值之类的编译错误,该值应该是数组初始化程序等。有人知道我如何使用String常量或String []常量为注释提供值吗?
146 java  arrays  annotations 


9
Java Map为什么不扩展Collection?
事实Map<?,?>并非如此,这让我感到惊讶Collection<?>。 我认为,如果这样声明,那将是很有意义的: public interface Map<K,V> extends Collection<Map.Entry<K,V>> 毕竟,Map<K,V>是的集合Map.Entry<K,V>,不是吗? 那么,为什么没有这样一个充分的理由实现它呢? 感谢Cletus提供的最权威的答案,但是我仍然想知道为什么,如果您已经可以查看Map<K,V>as Set<Map.Entries<K,V>>(通过entrySet()),那么它不仅扩展了该接口。 如果a Map是a Collection,则元素是什么?唯一合理的答案是“键值对” 确实interface Map<K,V> extends Set<Map.Entry<K,V>>会很棒! 但这提供了非常有限的(且不是特别有用的)Map抽象。 但是,如果是这种情况,那么为什么要entrySet由接口指定?它必须以某种方式有用(我认为很容易为该职位辩护!)。 您既不能询问给定键所映射的值,也不能在不知道给定键所映射的值的情况下删除给定键的条目。 我并不是说这就是全部Map!它可以并且应该保留所有其他方法(除外entrySet,现在已经多余了!)!
146 java  oop  collections 

10
您可以将一个流分成两个流吗?
我有一个由Java 8流表示的数据集: Stream<T> stream = ...; 我可以看到如何对其进行过滤以获取随机子集-例如 Random r = new Random(); PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator(); Stream<T> heads = stream.filter((x) -> (coin.nextInt() == 0)); 我还可以看到如何减少该流,例如,获得两个表示数据集的两个随机一半的列表,然后将它们转换回流。但是,是否有直接方法可以从最初的一个生成两个流?就像是 (heads, tails) = stream.[some kind of split based on filter] 感谢您的任何见解。
146 java  java-8  java-stream 


7
如何在Spring Controller中获取与JPA和Hibernate的FetchType.LAZY关联
我有一个Person类: @Entity public class Person { @Id @GeneratedValue private Long id; @ManyToMany(fetch = FetchType.LAZY) private List<Role> roles; // etc } 与多对多的关系是懒惰的。 在我的控制器中 @Controller @RequestMapping("/person") public class PersonController { @Autowired PersonRepository personRepository; @RequestMapping("/get") public @ResponseBody Person getPerson() { Person person = personRepository.findOne(1L); return person; } } 而PersonRepository只是根据本指南编写的代码 public interface PersonRepository extends …

8
如何在线程池中使用MDC?
在我们的软件中,我们广泛使用MDC来跟踪Web请求的内容,例如会话ID和用户名。在原始线程中运行时,这可以正常工作。但是,有很多事情需要在后台处理。为此,我们使用java.concurrent.ThreadPoolExecutor和java.util.Timer类以及一些自卷式异步执行服务。所有这些服务都管理自己的线程池。 这是Logback手册关于在这样的环境中使用MDC的内容: 映射的诊断上下文的副本不能始终由工作线程从发起线程继承。当java.util.concurrent.Executors用于线程管理时,就是这种情况。例如,newCachedThreadPool方法创建ThreadPoolExecutor,并且像其他线程池代码一样,它具有复杂的线程创建逻辑。 在这种情况下,建议在将任务提交给执行者之前,在原始(主)线程上调用MDC.getCopyOfContextMap()。当任务运行时,作为第一个动作,它应调用MDC.setContextMapValues()将原始MDC值的存储副本与新的Executor托管线程相关联。 这样做很好,但是忘记添加这些呼叫非常容易,并且直到太晚之前,都没有简便的方法来识别问题。使用Log4j的唯一迹象是您在日志中丢失了MDC信息,而使用Logback则获得了陈旧的MDC信息(因为胎面池中的线程从其上运行的第一个任务继承了其MDC)。两者都是生产系统中的严重问题。 我认为我们的处境没有任何特别之处,但是我在网络上找不到太多有关此问题的信息。显然,这不是很多人反对的事情,因此必须有一种避免的方法。我们在这里做错了什么?
146 java  logging  slf4j  logback  mdc 

7
什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
我一直想知道Runtime.getRuntime()。totalMemory(),Runtime.getRuntime()。freeMemory()和Runtime.getRuntime()。maxMemory()的确切含义是什么 。 我的理解是,Runtime.getRuntime().totalMemory()返回我的进程正在使用的总内存。那是对的吗? 如何freeMemory()与maxMemory()?
146 java 


14
Spring JPA选择特定列
我正在使用Spring JPA执行所有数据库操作。但是我不知道如何从Spring JPA的表中选择特定的列? 例如: SELECT projectId, projectName FROM projects

6
JComboBox选择更改侦听器?
每当尝试从中进行选择时,我都试图触发一个事件JComboBox。 我遇到的问题是没有明显的addSelectionListener()方法。 我尝试使用actionPerformed(),但从未触发。 没有覆盖的模型JComboBox,我没有想法。 如何通知有关JComboBox** 选择更改的通知?** 编辑:我要道歉。事实证明,我使用了行为异常的子类JComboBox,但是由于您的回答是好的,因此我将保留该问题。




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.