草庐IT

java - 字符串的外部文件,而不是对它们进行硬编码

我有开发一些Android应用程序的经验,这些应用程序很容易就有XML字符串文件,您可以在其中存储字符串。上次我开发桌面Java应用程序时,我对字符串进行了硬编码(例如按钮标题、标签等)。从那以后,我了解到这是一种不好的做法,我应该将字符串存储在一个文件中。我不确定该怎么做。我目前正在使用Eclipse进行开发。我应该只在我的项目文件夹中粘贴一个文本文件吗?这是标准吗?如何在代码中定位文件? 最佳答案 Eclipse有一个内置的重构功能,您可能会发现它很有用。Source->ExternaliseStrings这将创建一个属性文件,

java - 如何将运算符上的数学表达式拆分为分隔符,同时将它们保留在结果中?

我需要拆分像这样的表达式a+b-c*d/e分别得到a,b,c,d,e(作为字符串数组)以及=、-、*、d、/(也是一组运算符)分开。我试过这样的:StringmyString;StringmyString={"a+b-c*d/e");String[]result=newString();String[]separator=newString[]{"+","-","/","*"};result=myString.split(separator);但是,它显示错误。如何解决? 最佳答案 第一个问题:-多次声明StringmyString

Java 实际参数与形式参数不匹配,但它们匹配吗?

我有一个扩展实体的播放器类:玩家:publicclassPlayerextendsEntity{publicPlayer(charinitIcon,intinitX,intinitY){//emptyconstructor}...实体:publicEntity(charinitIcon,intinitX,intinitY){icon=initIcon;x=initX;y=initY;}...这几乎是你所期望的,但是在编译时我得到了一个错误Player.java:2:error:constructorEntityinclassEntitycannotbeappliedtothegiven

java - 在 Java 8 中,如何从 ArrayList 获取字符串值并将它们存储在以逗号分隔的单个字符串中?

我有一个带有一些字符串的ArrayList。我想将ArrayList中的数字列表存储在单个字符串中,用逗号分隔,如下所示。Strings="350000000000050287,392156486833253181,350000000000060764"这是我的list:Liste=newArrayList();e.add("350000000000050287");e.add("392156486833253181");e.add("350000000000060764");我一直在尝试通过以下方式做到这一点:StringBuilders=newStringBuilder();for

java - Swing BoxLayout 问题 - 无法让填充物完成它们的工作

我想做什么在Swing中,我尝试使用BoxLayout或等效的线性容器,但容器中的项目垂直拉伸(stretch)。在我的应用程序中,我不希望它们垂直拉伸(stretch)。我知道我可以在组件上设置preferredSize或maximumSize,但下面的代码只是一个复制器,我不能硬编码或最大化组件的大小,它们实际上更复杂并且动态。而且我不能将BorderLayout与BorderLayout.TOP位置一起使用,因为如果我这样做,滚动条将永远不会显示。我可能需要滚动Pane。我尝试过的所以我尝试在BoxLayout中使用fillers,如UsingInvisibleComponent

java - 如何根据应用程序的体系结构和类正确地组织两个枚举的结构,它们之间存在多对多关系?

我有枚举CarBrand:publicenumCarBrand{BMW,MERCEDES,VOLKSWAGEN,AUDI,FORD,OPEL}和枚举CarBodyType:publicenumCarBodyType{SEDAN,MINIVAN,VAN}它们之间的关系是多对多。IE。一个汽车品牌可以有多种车身类型,而一种车身类型可以有多个品牌。如何使用这些枚举在我的代码中定义这样的实体-关系模型?也许我需要将每个枚举中的字段作为由另一个枚举参数化的集合?publicenumCarBrand{BMW,MERCEDES,VOLKSWAGEN,AUDI,FORD,OPEL;privateSet

java - Elasticsearch Java 高级 REST 客户端建立一堆 TCP 连接并且在索引数据后不关闭它们

我有一个每秒运行一次的周期性作业(这是可配置的)。在这项工作中,我首先创建到Elasticsearch服务器的连接:RestHighLevelClientclient=newRestHighLevelClient(RestClient.builder(newHttpHost(address,port,"http")));然后我检查是否存在名为test的特殊索引。如果它不存在,我会先创建它。GetIndexRequestindexRequest=newGetIndexRequest();indexRequest.indices("test");booleantestIndexIsExis

java - 将 JTextField 添加到 JPanel 并显示它们

我正在NetBeans中使用Java和Swing构建一个小应用程序。使用NetBeans设计窗口,我创建了一个JFrame,里面有一个JPanel。现在我想向JPanel动态添加一些jTextFields。我写了类似的东西:VectortextFieldsVector=newVector();JTextFieldtf;inti=0;while(i但什么也没有发生:当我运行该应用程序时,JFrame显示内部有JPanel,但JTextFields却没有。我是编写图形Java应用程序的新手,所以我肯定遗漏了一些非常简单的东西,但我看不出是什么。 最佳答案

java - Eclipse 工作区中的 .recommenders 和 .metadata 是什么,它们应该在设备之间同步吗?

为了在不同的Windows10设备上无缝工作,我向OneDrive(OneDrive/Eclipse)添加了一个Eclipse工作区。此文件夹的内容是我的项目、.metadata(~45MB)文件夹和(隐藏?).recommenders(~5MB)文件夹。因为所有这些都在OneDrive中,所以所有文件和项目都会在设备之间同步。如果我下类回家,项目将同步到我的家用计算机,但是.metadata和.recommenders文件夹也会同步。问题是OneDrive经常遇到问题:有些东西无法同步或覆盖,所以它会创建一个本地副本——这显然很烦人。经过仔细检查,我意识到我什至不知道.metadat

java - HotSpot 能否在不内联它们的情况下优化掉对纯方法的冗余调用?

Puremethods是那些没有副作用的:它们的唯一作用是返回一个值,该值是其参数的函数。使用相同的参数对同一个纯方法的两次调用将返回相同的值。那么,假设两次调用具有相同参数的纯方法,HotSpot是否可以优化掉第二次调用,简单地重新使用第一次调用的值?例如:intadd(intx,inty){returnx+y;}intaddTwice(intx,inty){returnadd(x,y)+add(x,y);}如果HotSpot没有在addTwice中内联add它是否理解add是pure并因此调用添加一次,返回值加倍?当然,这样一个微不足道的[mcve]不太可能引起直接兴趣,但由于内联