Questions tagged «java»

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

13
从jar中读取资源文件
我想像这样从我的jar中读取资源: File file; file = new File(getClass().getResource("/file.txt").toURI()); BufferredReader reader = new BufferedReader(new FileReader(file)); //Read the file 并且在Eclipse中运行它时效果很好,但是如果我将其导出到jar中运行,则会出现IllegalArgumentException: Exception in thread "Thread-2" java.lang.IllegalArgumentException: URI is not hierarchical 我真的不知道为什么,但是经过一些测试,我发现我是否改变了 file = new File(getClass().getResource("/file.txt").toURI()); 至 file = new File(getClass().getResource("/folder/file.txt").toURI()); 然后它的作用相反(它在jar中起作用,但在Eclipse中不起作用)。 我正在使用Eclipse,并且包含我的文件的文件夹位于类文件夹中。

14
获取JUnit 4中当前正在执行的测试的名称
在JUnit 3中,我可以这样获得当前正在运行的测试的名称: public class MyTest extends TestCase { public void testSomething() { System.out.println("Current test is " + getName()); ... } } 它将显示“当前测试为testSomething”。 JUnit 4中是否有任何现成的或简单的方法可以做到这一点? 背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有这些。
240 java  unit-testing  junit 

7
如何将枚举值转换为int?
我有一个返回int类型的函数。但是,我只有TAX枚举的值。 如何将TAX枚举值转换为整数? public enum TAX { NOTAX(0),SALESTAX(10),IMPORTEDTAX(5); private int value; private TAX(int value){ this.value = value; } } TAX var = TAX.NOTAX; // This value will differ public int getTaxValue() { // what do do here? // return (int)var; }
240 java  enums 

3
Java 8 Lambda,Function.identity()或t-> t
Наэтотвопросестьответына 堆栈溢出нарусском:Лямбдыв爪哇8,чтолучшеиспользовать - Function.identity()илиT->吨? 我对Function.identity()方法的使用有疑问。 想象以下代码: Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // <- This, .map(str -> str) // <- is the same as this. .collect(Collectors.toMap( Function.identity(), // <-- And this, str -> str)); // <-- is the same as this. 是否有任何理由您应使用Function.identity()代替str->str(反之亦然)。我认为第二个选项更具可读性(当然是个人喜好了)。但是,有没有“真正的”理由为什么应该优先考虑呢?

12
将Java 8的Optional与Stream :: flatMap一起使用
新的Java 8流框架和新朋友创建了一些非常简洁的Java代码,但是我遇到了一个看似简单的情况,很难做到简洁。 考虑List<Thing> things和方法Optional<Other> resolve(Thing thing)。我想将Things 映射到Optional<Other>s并获得第一个Other。显而易见的解决方案是使用things.stream().flatMap(this::resolve).findFirst(),但flatMap要求您返回一个流,并且Optional没有stream()方法(或者是a Collection或提供一种将其转换为或将其视为a的方法Collection)。 我能想到的最好的方法是: things.stream() .map(this::resolve) .filter(Optional::isPresent) .map(Optional::get) .findFirst(); 但这对于一个很常见的案例来说似乎太漫长了。有人有更好的主意吗?

18
如何从资源文件夹加载文件?
我的项目具有以下结构: /src/main/java/ /src/main/resources/ /src/test/java/ /src/test/resources/ 我有一个文件,/src/test/resources/test.csv我想从单元测试中加载文件/src/test/java/MyTest.java 我有此代码无法正常工作。它抱怨“没有这样的文件或目录”。 BufferedReader br = new BufferedReader (new FileReader(test.csv)) 我也尝试过 InputStream is = (InputStream) MyTest.class.getResourcesAsStream(test.csv)) 这也不起作用。它返回null。我正在使用Maven构建我的项目。
240 java  file  maven 


14
如何在JPQL或HQL中进行限制查询?
在Hibernate 3中,有没有办法等效于以下HQL中的MySQL限制? select * from a_table order by a_table_column desc limit 0, 20; 如果可能的话,我不想使用setMaxResults。在旧版本的Hibernate / HQL中,这肯定是可能的,但似乎已经消失了。

14
在活动之间共享数据的最佳方法是什么?
我有一个活动,这是整个应用程序中使用的主要活动,它具有许多变量。我还有另外两个活动,我希望能够使用第一个活动中的数据。现在我知道我可以做这样的事情: GlobalState gs = (GlobalState) getApplication(); String s = gs.getTestMe(); 但是我想共享很多变量,有些可能很大,所以我不想像上面那样创建它们的副本。 有没有一种方法可以直接获取和更改变量而无需使用get和set方法?我记得在Google开发人员网站上读过一篇文章,建议不要在Android上使用此功能。
239 java  android  sharing 

5
为什么Java Streams一次性出现?
与C#不同IEnumerable,在C#中,执行管道可以执行任意多次,而在Java中,流只能“迭代”一次。 对终端操作的任何调用都会关闭流,使其无法使用。这种“功能”带走了很多力量。 我想这不是技术原因。这种奇怪的限制背后的设计考虑是什么? 编辑:为了演示我在说什么,请考虑以下C#中的Quick-Sort实现: IEnumerable<int> QuickSort(IEnumerable<int> ints) { if (!ints.Any()) { return Enumerable.Empty<int>(); } int pivot = ints.First(); IEnumerable<int> lt = ints.Where(i => i < pivot); IEnumerable<int> gt = ints.Where(i => i > pivot); return QuickSort(lt).Concat(new int[] { pivot }).Concat(QuickSort(gt)); } 现在确定,我不主张这是快速排序的良好实现!但是,这是将lambda表达与流操作相结合的表达能力的一个很好的例子。 而且用Java无法做到!我什至不能问一个流是否为空而不使它无法使用。

8
System.currentTimeMillis()与新Date()与Calendar.getInstance()。getTime()
Наэтотвопросестьответына 堆栈溢出нарусском:。Чтобыстрее - System.currentTimeMillis的()или日期()的getTime()? 在Java中,使用的性能和资源含义是什么? System.currentTimeMillis() 与 new Date() 与 Calendar.getInstance().getTime() 据我了解,System.currentTimeMillis()是最有效的。但是,在大多数应用程序中,该长值需要转换为Date或某个类似的对象才能对人类有意义。

4
Android buildscript存储库:jcenter VS mavencentral
我上一次使用Android Studio时,它生成.gradle带有mavencentral()buildscript存储库的文件,而现在有了jcenter()。 任何人都可以解释与此有关的问题。还有其他回购吗?我们什么时候应该切换它们?它们对项目,模块,库有什么影响?Android开发人员还有其他必需品吗? 谁负责维护这些存储库?

21
广播接收器,用于在Android应用中检查互联网连接
我正在开发一个用于检查互联网连接的Android广播接收器。 问题是我的广播接收器被调用了两次。我希望只有在网络可用时才能调用它。如果不可用,我不想收到通知。 这是广播接收器 public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { final ConnectivityManager connMgr = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr .getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (wifi.isAvailable() || mobile.isAvailable()) { // Do something Log.d("Network Available ", "Flag …

30
如何在Java中反转int数组?
Наэтотвопросестьответына 堆栈溢出нарусском:КакперевернутьмассиввДжаве? 我正在尝试反转Java中的int数组。 此方法不会反转数组。 for(int i = 0; i < validData.length; i++) { int temp = validData[i]; validData[i] = validData[validData.length - i - 1]; validData[validData.length - i - 1] = temp; } 怎么了
238 java  arrays  idioms  idiomatic 


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.