Questions tagged «java»

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

7
我应该使用哪个Java集合?
在这个问题中,如何在C ++ 11中有效地选择标准库容器?是选择C ++集合时要使用的便捷流程图。 我认为对于那些不确定应该使用哪个集合的人来说,这是一个有用的资源,因此我试图找到类似的Java流程图,但未能做到。 哪些资源和“备忘单”可用来帮助人们选择使用Java进行编程时要使用的正确Collection?人们如何知道应该使用哪些List,Set和Map实现?

4
通过反射调用吸气剂的最佳方法
我需要获取具有特定批注的字段的值,因此通过反射,我能够获取此Field Object。问题是,尽管我事先知道它将始终具有getter方法,但该字段将始终是私有的。我知道我可以使用setAccesible(true)并获取它的值(当没有PermissionManager时),尽管我更喜欢调用它的getter方法。 我知道可以通过查找“ get + fieldName”来查找该方法(尽管例如,我知道布尔字段有时被命名为“ is + fieldName”)。 我想知道是否有更好的方法来调用此getter(许多框架使用getter / setter访问属性,所以它们可能以另一种方式使用)。 谢谢
127 java  reflection  getter 


4
在SLF4J / Logback中使用标记的最佳实践
我们在项目中使用SLF4J + Logback组合已经有一段时间了,对此感到很满意,但是我们的日志记录策略非常简单,使用基于类的简单记录器,没有像MDC或Markers这样的奇特的东西。 我想知道的是,社区中是否有人真的使用了这些功能,以及它们如何用于改善日志记录/过滤功能。 我对在哪里,为什么以及如何使用[1]标记进行记录特别感兴趣。它们使我感到惊奇,因为它是将语义上下文添加到日志记录中的一种非常简洁的功能-例如,当一类可能正在处理多个问题时,可以使用特定于任务/关注点的标记来区分日志语句。 在日志记录中创建和使用标记的最佳实践,惯例或策略可能是什么。 更新:我想,我所真正追求的是没有那么多,为什么要使用标记,而是如何的一部分-有命名标志的一些好的做法(例如,使用用空格或破折号/下划线/标点符号分隔的关键字样式名称纯文本),如果有某种“标准名称”池,则根据业务功能命名内容。我可能可以为自己解决一些问题,但是如果我想系统地使用这些功能并将其介绍给一组开发人员,则有一套可形式化的指导原则是有道理的... [1] -通过询问如何使用标记,我并不是在问如何使用API​​(这确实很简单)-我指的是更一般的水平,即如何设置一致地使用标记进行日志记录
127 java  logging  slf4j  logback  markers 


3
如何在Maven中读取外部属性文件
有谁知道如何在Maven中读取x.properties文件。我知道有多种方法可以使用资源过滤来读取属性文件并从中设置值,但是我想要在pom.xml中使用以下方法: <properties file="x.properties"> </properties> 对此进行了一些讨论: Maven外部属性

11
Java的PHP var_dump等效项是什么?
PHP具有var_dump()函数,该函数输出对象的内部内容,显示对象的类型和内容。 例如: class Person { private $firstName; private $lastName; public function __construct($firstName, $lastName) { $this->firstName = $firstName; $this->lastName = $lastName; } } $person = new Person('Jon', 'Smith'); var_dump($person); 将输出: object(Person)#1 (2) { ["firstName:private"]=> string(3) "Jon" ["lastName:private"]=> string(5) "Smith" } Java中将执行相同操作的等效项是什么?
127 java  php 


13
不可能使缓存的线程池具有大小限制吗?
限制缓存线程池的创建数量似乎是不可能的。 这是在标准Java库中实现static Executors.newCachedThreadPool的方式: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } 因此,使用该模板继续创建固定大小的缓存线程池: new ThreadPoolExecutor(0, 3, 60L, TimeUnit.SECONDS, new SynchronusQueue<Runable>()); 现在,如果您使用它并提交3个任务,一切都会好起来的。提交任何其他任务将导致拒绝执行异常。 试试这个: new ThreadPoolExecutor(0, 3, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runable>()); 将导致所有线程按顺序执行。即,线程池将永远不会产生多个线程来处理您的任务。 这是ThreadPoolExecutor的execute方法中的错误吗?还是这是故意的?还是有其他方法? 编辑:我想要的东西完全类似于缓存的线程池(它会按需创建线程,然后在超时后将其杀死),但是它可以创建的线程数受到限制,并且一旦有线程就可以继续排队其他任务达到其线程限制。根据sjlee的答复,这是不可能的。查看ThreadPoolExecutor的execute()方法确实是不可能的。我将需要像SwingWorker一样子类化ThreadPoolExecutor并重写exe​​cute(),但是SwingWorker在execute()中所做的事情是一个完整的技巧。

9
导入android.support无法解析
我试图运行提供的代码这里 我从他们的Github上下载的代码,并导入到Android的SDK,但它表明在线路错误 import android.support.v4.app.FragmentActivity; import android.support.v4.app.NavUtils; 在多个文件中。但是,如果我检查了Android SDK管理器中,Android Support Library以及在Android Support Repository在都安装文件夹中的附加功能。我还可以在目录中看到support文件夹及其内容SDK_INSTALL\sdk\extras\android\support。它还具有v4文件夹,其中还包含android-support-v4.jar和src文件夹。为什么它仍然显示错误,如何解决该错误以及如何使该示例代码运行?如果相关,此示例代码适用于RSS阅读器应用程序。

1
您是否可以避免Gson将“ <”和“>”转换为Unicode转义序列?
我注意到Gson将字符串“ &lt;”转换为JSON输出中的Unicode转义序列。您能以某种方式避免这种情况吗,还是必须始终在JSON中转义“ &lt;”和“&gt;”之类的字符? 考虑下面的示例{"s":"\u003c"}:我只想 {"s":"&lt;"}。 public static void main(String[] args) { Gson gson = new GsonBuilder().create(); System.out.println(gson.toJson(new Foo())); } static class Foo { String s = "&lt;"; } 上下文:我正在创建的JSON片段与HTML页面甚至JavaScript无关;它只是用来将某些结构化信息传递给另一软件(嵌入在设备中,用C编写)。
127 java  json  gson 



9
javac选项以递归方式编译给定目录下的所有java文件
我正在使用javac编译器来编译项目中的Java文件。这些文件分布在几个包像这样:com.vistas.util,com.vistas.converter,com.vistas.LineHelper,com.current.mdcontect。 这些软件包中的每一个都有几个java文件。我正在使用像这样的javac: javac com/vistas/util/*.java com/vistas/converter/*.java com.vistas.LineHelper/*.java com/current/mdcontect/*.java (一行) 除了提供这么多路径之外,我如何要求编译器递归地编译来自父com目录的所有Java文件?
127 java  javac 

11
作为jar运行时找不到类路径资源
在Spring Boot 1.1.5和1.1.6中都存在此问题-我正在使用@Value注释加载类路径资源,当我从STS(3.6.0,Windows)中运行应用程序时,此方法工作得很好。但是,当我运行mvn程序包,然后尝试运行jar时,出现FileNotFound异常。 资源message.txt位于src / main / resources中。我已经检查了jar并确认它在顶层(与application.properties相同)包含文件“ message.txt”。 这是应用程序: @Configuration @ComponentScan @EnableAutoConfiguration public class Application implements CommandLineRunner { private static final Logger logger = Logger.getLogger(Application.class); @Value("${message.file}") private Resource messageResource; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void run(String... arg0) throws Exception { // both of …
127 java  spring-boot 

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.