Questions tagged «java»

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

5
为什么不抽象字段?
为什么Java类不能像抽象类那样具有抽象字段? 例如:我有两个扩展同一个抽象基类的类。这两个类各自具有相同的方法,但其中包含String常数(恰好是错误消息)。如果字段可以是抽象的,那么我可以使这个常量抽象,并将该方法引入基类。相反,我必须创建一个抽象方法(getErrMsg()在这种情况下称为该方法),该方法返回String,在两个派生类中重写此方法,然后可以拉出该方法(现在称为抽象方法)。 为什么我不能仅将字段抽象化?Java是否可以设计成允许这样做?
99 java  methods  field  abstract 

7
如何从bootRun传递JVM选项
我正在开发与远程主机通信的简单Spring Web应用程序,我想在公司代理之后在本地对其进行测试。我使用“ Spring Boot” gradle插件,问题是如何为JVM指定代理设置? 我尝试了几种方法来做到这一点: gradle -Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080 bootRun export JAVA_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" export GRADLE_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" 但似乎它们都不起作用-“ NoRouteToHostException”引发“网络”代码。另外,我添加了一些额外的代码来调试JVM启动参数: RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); List<String> arguments = runtimeMxBean.getInputArguments(); for (String arg: arguments) System.out.println(arg); 并且仅打印一个参数:“-Dfile.encoding = UTF-8”。 如果我在代码中设置系统属性: System.setProperty("http.proxyHost", "X.X.X.X"); System.setProperty("http.proxyPort", "8080"); 一切正常!




3
通过ClipData.Item.getUri在应用程序之外公开
我尝试在Android文件系统中添加新功能后解决问题,但出现此错误: android.os.FileUriExposedException: file:///storage/emulated/0/MyApp/Camera_20180105_172234.jpg exposed beyond app through ClipData.Item.getUri() 所以我希望有人可以帮助我解决这个问题:) 谢谢 private Uri getTempUri() { // Create an image file name SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); String dt = sdf.format(new Date()); imageFile = null; imageFile = new File(Environment.getExternalStorageDirectory() + "/MyApp/", "Camera_" + dt + ".jpg"); AppLog.Log( TAG, "New Camera Image Path:- …
99 java  android 

9
外行的Java 8供应商和消费者说明
作为学习Java的非Java程序员,我现在正在阅读Supplier和Consumer接口。而且我无法理解它们的用法和含义。什么时候以及为什么要使用这些接口?有人可以给我一个简单的外行例子吗?我发现Doc例子不够简洁,无法理解。
99 java  java-8 

30
Eclipse没有发现由NoClassDefFoundError为LauncherFactory使用JUnit 5进行的测试
问题 每当我运行项目JUnit测试(将JUnit 5与Java 9和Eclipse Oxygen 1.a结合使用)时,都会遇到Eclipse无法找到任何测试的问题。 说明 在运行配置下,eclipse甚至找不到用@Test注释的方法,而是只显示“ (所有方法) ”。下图希望可以更好地了解我的设置: 控制台输出: java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at java.base/java.lang.Class.newInstance(Unknown Source) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206) Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) …
99 java  eclipse  junit  java-9  junit5 

30
从集合/数组/列表创建逗号分隔的字符串的最复杂的方法?
在使用数据库的过程中,我注意到我编写了查询字符串,并且在此字符串中,我必须对列表/数组/集合的where子句施加一些限制。应该看起来像这样: select * from customer where customer.id in (34, 26, ..., 2); 您可以通过将其简化为以下问题来简化此问题:您具有字符串集合,并且只想在一个字符串中创建一个以逗号分隔的字符串列表。 到目前为止,我使用的方法是这样的: String result = ""; boolean first = true; for(String string : collectionOfStrings) { if(first) { result+=string; first=false; } else { result+=","+string; } } 但这就像您看到的非常难看。您不会一眼就看到那里发生了什么,特别是当构造的字符串(如每个SQL查询)变得复杂时。 您的(更多)优雅方式是什么?
98 java  sql  string 

14
IntelliJ Gradle插件:提供的javaHome似乎无效
类似的: - 的IntelliJ 14所提供的JAVAHOME似乎是无效的 - Android的工作室-提供JAVAHOME是不是一个有效的文件夹 但是,我正在尝试使用JAVA_HOME设置为C:\Program Files\Java\jdk1.8.0_40 我不明白为什么intellij在其安装目录中寻找JDK。 在intellij中: Executing external task 'bootRun'... The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\jre\bin\java.exe External task execution finished 'bootRun'. C:\>java -version java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b25) …


16
无法在Windows上安装Maven:“ JAVA_HOME设置为无效目录”
我遵循了Maven教程,但是仍然无法在Windows上安装Maven。 当我在命令提示符下运行以下命令时: E:\Documents and Settings\zach>mvn --version 我得到: 'mvn' is not recognized as an internal or external command, operable program or batch file. 我导航到maven安装文件夹并运行mvn --version并得到: E:\java resources\apache-maven-2.2.0\bin>mvn --version ERROR: JAVA_HOME is set to an invalid directory. JAVA_HOME = "E:\Sun\SDK\jdk\bin" Please set the JAVA_HOME variable in your environment to match the location …
98 java  maven-2 

5
JUnit 4测试套件
如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。
98 java  junit  test-suite 

5
如何访问默认包中的java类?
我现在正在与其他人一起在grails项目中工作。我必须编写一些Java类。但是我需要访问使用groovy创建的可搜索对象。看来,该对象必须放在默认包中。 我的问题是:有没有办法从命名包中的Java类访问默认包中的此对象?


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.