Questions tagged «java»

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


8
从groovy中的列表创建地图的快捷方式?
我想要一些排序方法: Map rowToMap(row) { def rowMap = [:]; row.columns.each{ rowMap[it.name] = it.val } return rowMap; } 鉴于GDK的工作方式,我希望能够做类似的事情: Map rowToMap(row) { row.columns.collectMap{ [it.name,it.val] } } 但我没有在文档中看到任何内容...我缺少什么吗?还是我太懒了?

4
使用GSON将JSON样式属性名称转换为Java CamelCase名称
我正在使用GSON将获取的JSON数据转换为Java对象。在我所有的测试中,它都运行良好。问题在于我们的真实对象具有一些名为is_online的属性。GSON仅在名称完全相等时才映射它们,最好将GSON将名称转换为Java驼峰,例如isOnline。 在创建JSON数据时,这似乎是可能的,驼峰式大小写将转换为JSON中下划线分隔的单词。但是我找不到另一种方法来指定此方法。
106 java  json  gson  camelcasing 

9
如何在Java中将二进制字符串转换为以10为基数的整数
我有一个表示二进制数(不带前导零)的字符串数组,我想将其转换为相应的基数10。考虑: binary 1011 becomes integer 11 binary 1001 becomes integer 9 binary 11 becomes integer 3 etc. 最好的进行方法是什么?我一直在探索java.lang.number。*而没有找到直接转换方法。Integer.parseInt(b)对String产生一个整数EQUAL ...例如,1001变为1,001而不是9 ...并且似乎不包括输出基数的参数。toBinaryString转换方向错误吗?我怀疑我需要进行多步转换,但似乎找不到正确的方法或子类组合。我也不确定前导零或缺少前导零的程度是否会成为问题。有人有什么好的指导指向我吗?
106 java  string  binary  radix 

8
如何在Java中流畅地构建JSON?
我在想类似的东西: String json = new JsonBuilder() .add("key1", "value1") .add("key2", "value2") .add("key3", new JsonBuilder() .add("innerKey1", "value3")) .toJson(); 哪种Java JSON库最适合这种流畅的构建? 更新:我包GSON,并得到几乎理想的结果...... 一个挂钩。
106 java  json 

8
Java中的#ifdef #ifndef
我怀疑是否有一种方法可以在Java中创建编译时条件,例如C ++中的#ifdef #ifndef。 我的问题是,有一种用Java编写的算法,并且对该算法的运行时间有所不同。因此,我想衡量每次使用改进后可以节省多少时间。 现在,我有一组布尔变量,这些变量用于确定在运行时应使用哪个改进,而不是哪个改进。但是,即使测试这些变量也会影响总运行时间。 因此,我想找到一种方法来确定在编译期间应编译和使用程序的哪些部分。 有人知道用Java做到这一点的方法吗?或者,也许有人知道没有这种方法(这也很有用)。

9
您如何从Shell强制垃圾收集?
因此,我正在远程容器上查看带有jmap的堆,并且我想对其进行强制垃圾收集。如何在不弹出jvisualvm或jconsole和朋友的情况下执行此操作? 我知道您不应该进行强制垃圾回收的实践-您应该弄清楚为什么堆很大/越来越大。 我也意识到System.GC()实际上并没有强制垃圾回收-它只是告诉GC您希望它发生。 话虽如此,有没有一种方法可以轻松地做到这一点?我缺少一些命令行应用程序?

10
Java变量如何与自身不同?
我想知道这个问题是否可以用Java解决(我是该语言的新手)。这是代码: class Condition { // you can change in the main public static void main(String[] args) { int x = 0; if (x == x) { System.out.println("Ok"); } else { System.out.println("Not ok"); } } } 我在实验室中收到以下问题:如何在x == x不修改条件本身的情况下跳过第一种情况(即使条件为假)?
106 java  if-statement 

15
如何替换Java字符串中的一组标记?
我有以下模板字符串:"Hello [Name] Please find attached [Invoice Number] which is due on [Due Date]"。 我还有用于名称,发票编号和到期日的String变量-用变量替换模板中的标记的最佳方法是什么? (请注意,如果变量恰好包含令牌,则不应将其替换)。 编辑 感谢@laginimaineb和@ alan-moore,这是我的解决方案: public static String replaceTokens(String text, Map<String, String> replacements) { Pattern pattern = Pattern.compile("\\[(.+?)\\]"); Matcher matcher = pattern.matcher(text); StringBuffer buffer = new StringBuffer(); while (matcher.find()) { String replacement = replacements.get(matcher.group(1)); if (replacement != …
106 java  regex  templates 


8
Java将enum与switch语句一起使用
我已经看过类似于此问题的各种问答,但是还没有找到解决方案。 我所拥有的一个枚举代表了观看电视指南的不同方式... 在NDroid Application类中 static enum guideView { GUIDE_VIEW_SEVEN_DAY, GUIDE_VIEW_NOW_SHOWING, GUIDE_VIEW_ALL_TIMESLOTS } ...当用户更改视图时,事件处理程序会收到int0-2的值,而我想做这样的事情... 在Android Activity onClick(DialogInterface dialog, int which)事件处理程序中 // 'which' is an int from 0-2 switch (which) { case NDroid.guideView.GUIDE_VIEW_SEVEN_DAY: ... break; } 我习惯了C#枚举和select / case语句,这些语句将允许类似上面的内容,而且我知道Java会做一些不同的事情,但我只是不明白我需要做什么。 我将不得不诉诸if陈述吗?我可能只有3个选择,所以我可以这样做,但我想知道如何用Java中的切换用例来完成。 编辑抱歉,我没有完全扩展此问题,因为我将其视为通用Java问题。我已经添加了这个问题,以进一步解释。 没有什么是特定于Android的,这就是为什么我没有将其标记为Android,而是在Application类中定义了枚举,而我不希望在其中切换的代码位于的原因Activity。枚举是静态的,因为我需要从多个活动中访问它。

9
相当于IOUtils.toString(InputStream)的番石榴
Apache Commons IO有一个很好的便捷方法IOUtils.toString()来读取InputStream字符串。 由于我正尝试从Apache Commons转移到Guava:Guava中有等同的功能吗?我查看了com.google.common.io程序包中的所有类,但几乎找不到任何简单的东西。 编辑:我理解并赞赏字符集的问题。碰巧,我知道我所有的来源都是ASCII(是,ASCII,不是ANSI等),因此在这种情况下,编码对我来说不是问题。
106 java  io  inputstream  guava 


1
Eclipse RCP-在“编辑器”区域中打开一个视图(3.8 / e4混合)
我正在研究3.8-e4混合动力车(即,我们具有Luna依赖项,但尚未使用Application.e4xmi)。因此,我们基本上在运行紧凑层。 话虽这么说,最好找到一种e4编程方式将这些讨厌的视图堆叠到editor文件夹中。 1.)问题 我想在编辑器区域中放置一个通用视图文件夹,以便在运行时打开的每个视图都将在那里打开。 (从这个问题中偷来的图片) 2.1)可能的修补程序1:使用plugin.xml 创建一个透视扩展,并将每个可能的视图添加到该扩展,并在相对的org.eclipse.ui.editorss上建立关系堆栈。如果您有太多无法打开的视图,并且项目迅速扩展,那么这将带来一些不便。我还注意到通配符视图ID在这里不起作用。 如果您发现有时间将每个可能的视图添加到透视图扩展中,那将起作用。虽然,如果您打开未在此处添加的视图(即:在另一个文件夹中打开),则随后的每个打开的视图将在上一个文件夹中打开,而不是在编辑器区域中打开(如果不这样做,请进一步说明)得到它)。 2.2)可能的解决方案2:在透视图工厂中使用代码 在中IPerspectiveFactory,我们确实可以访问IPageLayout,而恰好是org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout(e4东西)。 现在,这种ModeledPageLayout实现是合理的,但是也没有文档和怪异的公共API。这使人们有可能在其他任何亲戚之间堆叠视图 modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA); 这将是2.1的编程版本。同样,这里也会出现同样的问题。如果在其他地方打开视图,则上面的代码将变得无用。 有趣的是,stackViewAPI不支持通配符(而其他则支持通配符addView)。 2.3)可能的解决方法3:变通了! 我有很多观点,每个观点都有很多不同的文件夹。一切都已精确放置。 由于Eclipse提供了API以便从系统各处获取所有视图ID,因此,我希望从每个角度执行以下操作:未添加到特定文件夹的每个视图ID将附加到编辑器区域(即,编辑器文件夹) ,编辑器堆栈)。 除非有人提供更方便,更省时的解决方案,否则这将是我的最后选择。 请记住,e4编程替代方案更加灵活! 3.)相关问题 Eclipse RCP-在编辑器文件夹中打开视图 Eclipse RCP-将视图与编辑器区域堆叠在一起? 自定义Eclipse透视图,最初隐藏的视图堆叠到编辑器区域 Google问题,Lars回答 这些将在e4版本中被弃用。 4.)Eclipse Bugzilla上的相关Bug: 我自己打开的这个最新bug带有一个小型SSCCE的附件。重现此步骤的步骤在此注释中进行了描述,因此在这里我不会将其复制粘贴。


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.