Questions tagged «java»

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

8
Java枚举反向查找最佳实践
我在博客上看到它的建议是,以下是getCode(int)在Java枚举中使用“反向查找”的合理方法: public enum Status { WAITING(0), READY(1), SKIPPED(-1), COMPLETED(5); private static final Map<Integer,Status> lookup = new HashMap<Integer,Status>(); static { for(Status s : EnumSet.allOf(Status.class)) lookup.put(s.getCode(), s); } private int code; private Status(int code) { this.code = code; } public int getCode() { return code; } public static Status get(int code) { …

20
无法将工件org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1从中央传输到中央(http://repo1.maven.org/maven2)
我在SpringSource Tool Suite中创建了一个新的maven项目。我在新的Maven项目中遇到此错误。 无法从http://repo1.maven.org/maven2传输org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 缓存在本地存储库中,直到更新间隔才会重新尝试解析已用完或已强制更新。原始错误:无法将文物org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1从中央传输到中央(http://repo1.maven.org/maven2):连接超时 pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test.app</groupId> <artifactId>TestApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>TestApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> Settings.xml <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups> </pluginGroups> <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>user</username> <password>pass</password> <host>ip</host> <port>80</port> …
76 java  maven 

7
Java泛型超级关键字
我经历了这些话题 泛型..?超级T 用'super'关键字绑定泛型 但是,我似乎仍然对super关键字感到迷茫: 当我们声明这样的集合时: List<? super Number> list = null; list.add(new Integer(0)); // this compiles list.add(new Object()); // this doesn't compile 不应该相反吗?我们有一个列表,其中包含一些对象(类型未知),它们是的父对象Number。因此Object应该适合(因为它是的父项Number),Integer而不应该。由于某种原因,情况恰恰相反。 只要我们有以下代码 static void test(List<? super Number> param) { param.add(new Integer(2)); } public static void main(String[] args) { List<String> sList = new ArrayList<String>(); test(sList); // will never compile, …
76 java  generics 

11
如何在Java中取消对Java字符串文字的转义?
我正在使用Java处理一些Java源代码。我正在提取字符串文字并将其提供给带有String的函数。问题是我需要将String的未转义版本传递给函数(即,这意味着要转换\n为换行符和\\单个字符\,等等)。 Java API内是否有执行此操作的功能?如果没有,我可以从某些库中获得这种功能吗?显然,Java编译器必须执行此转换。 万一有人想知道,我正在尝试对经过反混淆的Java文件中的字符串文字进行反混淆。
76 java  string  escaping 


10
绑定Spring MVC命令对象时如何自定义参数名称?
我有一个命令对象: public class Job { private String jobType; private String location; } 这受spring-mvc约束: @RequestMapping("/foo") public Strnig doSomethingWithJob(Job job) { ... } 哪个适用于http://example.com/foo?jobType=permanent&location=Stockholm。但是现在我需要使它适用于以下URL: http://example.com/foo?jt=permanent&loc=Stockholm 显然,我不想更改命令对象,因为字段名称必须保持较长(因为它们在代码中使用了)。我该如何自定义呢?是否可以选择执行以下操作: public class Job { @RequestParam("jt") private String jobType; @RequestParam("loc") private String location; } 这是行不通的(@RequestParam无法应用于字段)。 我正在考虑的事情是类似于FormHttpMessageConverter目标对象并读取目标对象上的自定义注释的自定义消息转换器

6
Java中是否有一个“直到条件变为真”的功能?
我正在为服务器编写侦听器线程,此刻我正在使用: while (true){ try { if (condition){ //do something condition=false; } sleep(1000); } catch (InterruptedException ex){ Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex); } } 使用上面的代码,我遇到了运行功能吃掉所有cpu时间循环的问题。睡眠功能有效,但似乎是临时解决方案,而不是解决方案。 是否有一些函数会阻塞直到变量“ condition”变为“ true”?还是连续循环等待变量值改变的标准方法?

5
如何在Android Studio中指定JDK版本?
Android Studio给我一个Gradle构建错误,看起来像这样: Error:(3, 22) compileSdkVersion android-22 requires compiling with JDK 7 现在它给了我这些可点击的提示: Download JDK 7 Select a JDK from the File System Open build.gradle File 而且我已经下载并安装了JDK7。问题是,当我在“文件系统”中选择它时,我只能找到一个名为1.6.0 JDK的目录。此外,JDK 7的安装跳过了要选择安装目录的要点,因此我真的不确定它在哪里。我的Java控制面板说我有“ Java 7 Update 79”,所以我很确定我已经关闭了,我只需要告诉android studio它在哪里。我还在java -version终端中运行了命令,并说我的版本是“ 1.7.0_79”。 任何帮助表示赞赏!

8
将Set <String>的内容放到单个字符串中且单词之间用空格隔开的最快方法?
我有几个Set&lt;String&gt;s,并且想要将它们中的每一个转换成单个String,其中原始元素的每个元素Set都由空格“”分隔。天真的第一方法就是这样做 Set&lt;String&gt; set_1; Set&lt;String&gt; set_2; StringBuilder builder = new StringBuilder(); for (String str : set_1) { builder.append(str).append(" "); } this.string_1 = builder.toString(); builder = new StringBuilder(); for (String str : set_2) { builder.append(str).append(" "); } this.string_2 = builder.toString(); 谁能想到更快,更漂亮或更有效的方式来做到这一点?



8
Java中的默认值和初始化
根据我的参考,原始类型具有默认值,而Objects为null。我测试了一段代码。 public class Main { public static void main(String[] args) { int a; System.out.println(a); } } 该行将System.out.println(a);指向一个变量a,指出该错误,variable a might not have been initialized而在给定的引用中,integer将具有0默认值。但是,使用下面的给定代码,它将实际打印出来0。 public class Main { static int a; public static void main(String[] args) { System.out.println(a); } } 第一个代码可能会出什么问题?类实例变量的行为与局部变量不同吗?

4
显示对话框的软键盘
我正在显示一个带有edittext视图的对话框。但是,仅当用户在editview中按下时,软键盘才会打开。因此,我尝试使用以下代码调用InputMethodManager。 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(dialogField,0); dialogField是输入字段。但是,我到底应该在什么时候这样做呢?我在对话框的onStart()方法中尝试过,但没有任何反应。我也尝试过为dialogField请求焦点,但这没有任何改变。 我也尝试过这段代码 dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener() { public void onFocusChange (View v, boolean hasFocus) { if (hasFocus) { Main.log("here"); dialogInput.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); /* InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); mgr.showSoftInput(dialogField,0); */ } } }); 在两个版本中。但是没有软键盘想要出现。Main.log只是一个日志,它向我显示该函数实际上已被调用。是的,它被称为。 在对话框打开之前,我可以使用SHOW_FORCED标志获取键盘。但是,它不会在退出时关闭。在显示对话框之前,我只能这样做。在任何回调中,它也不起作用。

9
如何使实体为只读?
使用JPA将实体设为只读的正确方法是什么?我希望我的数据库表永远不会以编程方式进行修改。 我想我知道我应该用锁定我的对象LockModeType.READ。从数据库检索后,是否可以使用注释使我的实体直接锁定?还是我必须弄乱并覆盖该特定实体的通用DAO?
76 java  jpa 


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.