Questions tagged «java»

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

6
Java:检查命令行参数是否为空
我正在寻找一些针对我的命令行参数的错误检查 public static void main(String[] args) { if(args[0] == null) { System.out.println("Proper Usage is: java program filename"); System.exit(0); } } 但是,这将返回超出范围的数组异常,这是有道理的。我只是在寻找正确的用法。

5
为什么我们使用数据源而不是DriverManager?
我正在阅读Java JDBC规范(版本4),并且遇到了以下语句: DataSource-此接口在JDBC 2.0可选软件包API中引入。它优于DriverManager,因为它允许有关基础数据源的详细信息对应用程序透明 我想了解的是aConnection和a之间的区别DataSource以及它为什么存在。我的意思是,上面的代码块说关于数据源的详细信息对应用程序是透明的,但是是否不会在属性文件中外部化数据库属性(如用户名,密码,URL等),然后以相同的方式使用DriverManager? 并且DataSource创建接口只是为了以一种通用的方式返回可以合并的连接吗?在Java EE中,应用程序服务器是否实现此接口,并且部署的应用程序具有对数据源而不是连接的引用?
89 java  jdbc  datasource 

7
为什么可以修改最终对象?
我在正在处理的代码库中遇到以下代码: public final class ConfigurationService { private static final ConfigurationService INSTANCE = new ConfigurationService(); private List providers; private ConfigurationService() { providers = new ArrayList(); } public static void addProvider(ConfigurationProvider provider) { INSTANCE.providers.add(provider); } ... INSTANCE声明为final。为什么可以添加对象INSTANCE?那不应该使final的使用无效。(不是)。 我假设答案必须与指针和内存有关,但想确定。
89 java  final 

9
如何将多部分文件转换为文件?
谁能告诉我将多部分文件(org.springframework.web.multipart.MultipartFile)转换为File(java.io.File)的最佳方法是什么? 在我的春季MVC Web项目中,我正在以Multipart文件的形式上传文件。我必须将其转换为File(io),因此我可以将此图像存储服务称为Cloudinary。它们仅采用(File)类型。 我进行了很多次搜索,但都失败了。如果有人知道一种标准的方法,请告诉我?n

7
在ArrayList中找到项目索引的更好方法?
对于Android应用,我具有以下功能 private ArrayList<String> _categories; // eg ["horses","camels"[,etc]] private int getCategoryPos(String category) { for(int i = 0; i < this._categories.size(); ++i) { if(this._categories.get(i) == category) return i; } return -1; } 这是编写用于获取元素位置的函数的“最佳”方法吗?还是我应该利用Java中奇特的shmancy本机函数?

21
声明的软件包与预期的软件包“”不符
我正在使用Eclipse,并且有一段时间没有使用Java了。但是,我可以在命令行上编译我的代码,并生成必要的.class文件。在Eclipse中,它抱怨The declared package "Devices" does not match the expected package ""。这是什么意思,我该如何解决? 样例代码: package Devices; public final class DevFrequency { public short messageID; public double frequency; public short converterID; public DevFrequency() { } public DevFrequency(short _messageID,double _frequency,short _converterID) { messageID = _messageID; frequency = _frequency; converterID = _converterID; } } 我的项目的名称是DeviceDDS。
89 java  eclipse 

7
如何在Java中将org.w3c.dom.Element输出为字符串格式?
我有一个org.w3c.dom.Element对象传递给我的方法。我需要查看包括其子节点的整个xml字符串(整个对象图)。我正在寻找一种可以将转换Element为xml格式字符串的方法System.out.println。只是println()在'Element'对象上将不起作用,因为toString()将不会输出xml格式,也不会通过其子节点。有没有一种简单的方法而无需编写自己的方法来做到这一点?谢谢。
89 java  xml  dom 

6
杰克逊+建设者模式?
我希望Jackson用以下构造函数反序列化一个类: public Clinic(String name, Address address) 反序列化第一个参数很容易。问题在于地址定义为: public class Address { private Address(Map<LocationType, String> components) ... public static class Builder { public Builder setCity(String value); public Builder setCountry(String value); public Address create(); } } 并构造如下: new Address.Builder().setCity("foo").setCountry("bar").create(); 有没有办法从Jackson那里获取键值对,以便自己构造地址?另外,是否有办法让Jackson本身使用Builder类?
89 java  json  jersey  jackson 

9
(字符串)还是.toString()?
我有一个带有Object o参数的方法。 在这种方法中,我完全知道String在“ o”中存在一个不为空的值。无需检查或执行其他操作。我必须像对待String对象一样对待它。 只是好奇-更便宜的是-将其投放String或使用Object.toString()?还是按时间/ CPU /内存价格相同? 更新:该方法可以接受,Object因为它是接口的实现。无法更改参数类型。 而且根本不可能null。我只是想说我不需要检查它是否为空或为空。就我而言,总是有一个非空字符串。
89 java  casting 


2
java.lang.reflect.Proxy的替代品,用于创建抽象类的代理(而不是接口)
根据文档: [ java.lang.reflect.]Proxy提供了用于创建动态代理类和实例的静态方法,它还是由这些方法创建的所有动态代理类的超类。 该newProxyMethod方法(负责生成动态代理)具有以下签名: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException 不幸的是,这阻止了人们生成扩展特定抽象类的动态代理(而不是实现特定接口)。考虑到java.lang.reflect.Proxy“所有动态代理的超类”,这是有道理的,因此可以防止另一个类成为超类。 因此,是否有替代方法java.lang.reflect.Proxy可以生成从特定抽象类继承的动态代理,从而将对抽象方法的所有调用重定向到调用处理程序? 例如,假设我有一个抽象类Dog: public abstract class Dog { public void bark() { System.out.println("Woof!"); } public abstract void fetch(); } 有没有可以让我做以下事情的课程? Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h); dog.fetch(); // Will be handled by the invocation handler …

1
建议部署War文件与带有嵌入式容器的可执行jar
在Java空间中,当前趋势是从以war文件(或ear文件)的形式从将Java Web应用程序部署到Java Servlet容器(或应用程序服务器)转移,而不是将应用程序打包为具有嵌入式servlet / HTTP服务器(如码头)。我的意思是,更新颖的框架影响着新应用程序的开发和部署方式,而不是将应用程序交付给最终用户的方式(例如,我明白了为什么Jenkins使用嵌入式容器,非常容易抓取和使用) )。采用可执行jar选项的框架示例: Dropwizard,Spring Boot和Play (它不是在servlet容器上运行,而是嵌入了HTTP服务器)。 我的问题是,在一个我们已经将我们的应用程序(到目前为止主要是Struts2)部署到单个tomcat应用程序服务器的环境中,如果我们计划使用嵌入式容器方法,则需要进行哪些更改,最佳实践或注意事项? ?当前,我们在单个tomcat服务器上运行大约10个本地应用程序,对于这些较小的应用程序,共享资源并在一台服务器上进行管理的能力非常好。我们的应用程序并非旨在分发给最终用户以在其环境中运行。但是,如果我们决定使用更新的Java框架,那么这种方法是否应该改变?越来越多地使用云部署(例如Heroku)是否会促使向可执行jar的转变? 如果您曾经在单一应用程序服务器上以Play部署方式管理传统的War File部署中的多个应用程序,那么请分享您的见解。

8
600851475143的“整数数太大”错误消息
public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143); } private Long function(long i) { Stack<Long> stack = new Stack<Long>(); for (long j = 2; j <= i; j++) { if (i % j == 0) { stack.push(j); } } return stack.pop(); } …
89 java  integer 

6
如何在Spring Security中禁用'X-Frame-Options'响应头?
我在jsp上安装了CKeditor,并且每当我上传一些内容时,就会弹出以下错误: Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'. 我尝试过删除Spring Security,并且一切正常。如何在Spring Security xml文件中禁用此功能?<http>标签之间应该写些什么

12
冒号(:)运算符做什么?
显然,Java中冒号以多种方式使用。有人介意解释它的作用吗? 例如这里: String cardString = ""; for (PlayingCard c : this.list) // <-- { cardString += c + "\n"; } 您将如何for-each以不同的方式编写此循环,以便不合并:?

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.