Questions tagged «java»

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


8
log4j不打印异常的堆栈跟踪
我在tomcat中使用log4j。当我在JSP中记录异常时,servlet: private Logger _log = Logger.getLogger(this.getClass()); ... try{...} catch (Exception e) { _log.error("Error refreshing all prices", e); } 我只得到异常的第一行,没有堆栈跟踪。 17-Feb 17:37:45错误AutoContrib:175-发布csv文件时发生异常:java.lang.ArrayIndexOutOfBoundsException 根本不是很有帮助! 我的log4j.properties文件(/tomcat/common/classes/log4j.properties)看起来像这样: log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{dd-MMM HH:mm:ss} %5p %c{1}:%L - %m%n log4j.appender.stdout.threshold=info log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.maxFileSize=5000KB log4j.appender.file.maxBackupIndex=10 log4j.appender.file.File=${catalina.home}/logs/web.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{dd-MMM HH:mm:ss} %5p %c{1}:%L - %m%n log4j.appender.file.threshold=info log4j.rootLogger=debug, stdout, file
70 java  tomcat  logging  log4j 

5
如何用现代Java比较数组列表的相等性?
我有两个数组列表。 如何在不使用外部库的情况下轻松地将它们与Java 8及其功能的相等性进行比较?我正在寻找一种比这种强力代码(未经测试的代码,可能包含错别字等)更好的(更高级别,更短,更有效)的解决方案: boolean compare(List<String[]> list1, List<String[]> list2) { // tests for nulls etc omitted if(list1.size() != list2.size()) { return false; } for(i=0; i<list1.size(); ++i) { if(!Arrays.equals(list1.get(i), list2.get(i))) { return false; } } return true; } 或者,如果没有更好的方法,那也是一个有效的答案。 奖励:如果Java 9提供了Java 8可以提供的更好的方法,请随时提一下。 编辑:在查看评论并查看此问题如何变得中等热点之后,我认为“更好”应包括在检查数组内容之前首先检查所有数组的长度,因为如果有内部的话,它有可能更快地找到不等式数组很长。
70 java  arrays  list  java-8  equals 

4
Java反射:创建一个实现类
Class someInterface = Class.fromName("some.package.SomeInterface"); 现在如何创建一个实现的新类someInterface? 我需要创建一个新类,并将其传递给需要使用aSomeInterface作为参数的函数。

2
如何初始化静态数组?
我已经看到了在Java中定义静态数组的不同方法。要么: String[] suit = new String[] { "spades", "hearts", "diamonds", "clubs" }; ...或仅 String[] suit = { "spades", "hearts", "diamonds", "clubs" }; 或作为 List List suit = Arrays.asList( "spades", "hearts", "diamonds", "clubs" ); 有区别吗(当然除了List定义)? 有什么更好的方法(明智的选择)?

3
番石榴checkNotNull有什么意义
我对Guava还是很陌生(说实话,我不是“很新”,我是这个主题的新手),所以我决定阅读一些文档,并在阅读本文时感到非常惊讶: com.google.common.base.Preconditions.checkNotNull(...) 我不明白这种方法的意义。这意味着不要这样做: myObject.getAnything(); (NullPointerException如果myObject为null ,则可能会导致) 我应该用 checkNotNull(myObject).getAnything(); 这将抛出NullPointerException如果myObject是空和返回myObject,如果它不为空。 我很困惑,这可能是有史以来最愚蠢的问题,但是... 这有什么意义呢?在我可以想到的任何情况下,这两行所做的事情与结果完全一样。 我什至不认为后者更具可读性。 所以我一定想念一些东西。它是什么?

5
做“条件”时“不做”
浏览ForkJoinPool的Java 8版本的代码(它与Java 7相比有一些有趣的变化),我遇到了这个结构(在这里): do {} while (!blocker.isReleasable() && !blocker.block()); 我在为您为什么要像这样写而苦苦挣扎 while (!blocker.isReleasable() && !blocker.block()); 因为您可以将第一个构造读取为,这仅仅是语义/可读性选择do "nothing" while "conditions"吗?还是我还缺少其他好处?

4
注入EntityManagerVs。实体管理器工厂
一个很长的问题,请忍受我。 我们将Spring + JPA用于Web应用程序。我的团队在讨论如何在注入EntityManagerFactory的GenericDAO(基于泛型的东西对AppFuse中提供的线DAO,我们不使用JpaDaosupport某种原因)在注入EntityManager。我们正在使用“应用程序管理的持久性”。 反对注入a的论点EntityManagerFactory是它太重了,因此不是必需的,这EntityManager就是我们需要的。另外,由于Spring会为每个Web请求创建一个DAO的新实例(我对此表示怀疑),因此不会像以前那样存在任何并发问题EntityManager实例中,两个线程共享该线程。 注入EFM的理由是,对于拥有工厂的人来说,EFM的良好实践总会带来好处。 我不确定哪种方法最好,请问有人可以启发我吗?

7
Java抽象类使用泛型实现接口
我试图定义一个实现Comparable的抽象类。当我用以下定义定义类时: public abstract class MyClass implements Comparable <MyClass> 子类必须实现compareTo(MyClass object)。相反,我希望每个子类都实现compareTo(SubClass object),接受其自己类型的对象。当我尝试使用类似以下内容定义抽象类时: public abstract class MyClass implements Comparable <? extends MyClass> 它抱怨“一个超类型可能没有指定任何通配符。” 有解决方案吗?

6
如何在Java中使用SortedMap接口?
我有一个 Map<Float, MyObject> 保持地图根据浮动量排序的最佳方法是什么? 是SortedMap最好的答案?TreeMap?如何使用? 我只创建一次地图,并替换了MyObject经常使用的myMap.put()和myMap.get()。
70 java  sortedmap 

4
是否有比此代码更优雅的方式将XML文档转换为Java中的字符串?
这是当前使用的代码。 public String getStringFromDoc(org.w3c.dom.Document doc) { try { DOMSource domSource = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.transform(domSource, result); writer.flush(); return writer.toString(); } catch(TransformerException ex) { ex.printStackTrace(); return null; } }
70 java  xml 


3
LinkedHashMap中的entrySet()是否也保证顺序?
我正在使用一个linkedHashMap来保证有人尝试访问它时的顺序。但是,当需要进行迭代时,使用entrySet()返回键/值对是否也可以保证顺序?迭代时不会进行任何更改。 编辑:另外,通过迭代其键并调用get可以遍历地图是否有任何不利影响?

3
如何从泛型类型参数获取`.class`属性?
该问题的可接受答案描述了如何T在Generic<T>类中创建的实例。这涉及将Class<T>参数传递给Generic构造函数并newInstance从中调用方法。 Generic<Bar>然后创建的新实例,并Bar.class传递参数。 如果新Generic类的泛型类型参数不是某个已知类,Bar但它本身是泛型类型参数,该怎么办?假设我还有其他班级Skeet<J>,我想Generic<J>从该班级内部创建一个新实例。然后,如果我尝试传递,则会J.class收到以下编译器错误: cannot select from a type variable. 有没有办法解决? 对我而言,触发错误的代码是: public class InputField<W extends Component & WidgetInterface> extends InputFieldArray<W> { public InputField(String labelText) { super(new String[] {labelText}, W.class); } /* ... */ } public class InputFieldArray<W extends Component & WidgetInterface> extends JPanel { /* ... */ public InputFieldArray(String[] labelText, …
70 java  generics 

14
如何在Android中从HashMap打印所有键和值?
我对Android开发非常陌生,并且尝试在Android示例项目中使用HashMap。现在,我正在做示例项目以学习android。我只是将键和值存储在HashMap中,我想在EditView中显示键及其值。我在示例项目中遵循以下代码。但是,第一个键和值仅在EditView中打印。 Map<String, String> map = new HashMap<String,String>(); map.put("iOS", "100"); map.put("Android", "101"); map.put("Java", "102"); map.put(".Net", "103"); Set keys = map.keySet(); for (Iterator i = keys.iterator(); i.hasNext(); ) { String key = (String) i.next(); String value = (String) map.get(key); textview.setText(key + " = " + value); } 在EditViewiOS = 100中仅打印。我想在EditText中打印所有键及其值。谁能告诉我我做错了什么?提前致谢。
70 java  android  key  hashmap 

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.