最近我和我的团队负责人讨论了使用临时变量与调用getter方法的问题.很长一段时间我认为,如果我知道我将不得不多次调用一个简单的getter方法,我会将它放入一个临时变量然后使用该变量.我认为这在风格和性能方面都会更好.但是,我的主管指出,在Java 4和更新版本中,这有点不正确.他相信使用较小的变量空间,所以他告诉我,调用getter方法的性能命中非常微不足道,而不是使用temp变量,因此使用getter更好.但是,我并不完全相信他的论点.你们有什么感想?
我最近由我公司的一位高级开发人员审核了我的代码.他批评我的设计使用了太多的课程.我很想听听你的反应.
我的任务是创建一个服务,该服务生成一个xml文件,因为它操作了3个其他xml文件.我们将这些命名为aaa.xml,bbb.xml和ccc.xml.该服务分两个阶段进行.在第一阶段,它会针对bbb.xml清理aaa.xml.在第二阶段,它将第一阶段的产品与ccc.xml合并以产生最终结果.
我选择了一个包含三个类的设计:一个XmlService类,它使用了另外两个类,一个scrubber类和一个merger类.我保持擦洗和合并类是分开的,因为这两个类都很大并且具有不同的逻辑.
我认为我的方法很好,因为它让我的课程变得小而有凝聚力.我的方法也有助于控制我的测试类的大小.
高级开发人员断言,清理和合并类只能由XmlService类使用,因此应该是它的一部分.他觉得这会使XMLService具有凝聚力,这就是他所说的具有凝聚力的意思.他还认为以这种方式分手,会使他们松散凝聚力.
具有讽刺意味的是,我试图打破这些课程以达到凝聚力.你怎么看?谁对或错?我们都对吗?谢谢你的建议.
我一直在尝试使用Java 8中内置的java.time包将"DateTime"转换为毫秒.
但我无法正确地做到这一点.我想将"29/Jan/2015:18:00:00"转换为毫秒.以下是我尝试过的
Instant instant = Instant.parse("2015-01-29T18:00:00.0z");
Long instantMilliSeconds = Long.parseLong(instant.getEpochSecond() + "" + instant.get(ChronoField.MILLI_OF_SECOND));
System.out.println(new Date(instantMilliSeconds)); // prints Sun Jun 14 05:06:00 PDT 1970
Run Code Online (Sandbox Code Playgroud)
我尝试过使用LocalDateTime,但找不到有效转换为毫秒的方法.我并不是说这是最好的方法,如果你知道更好的东西,我会非常感谢一些指示.
我们有一个由CRON运行的shell脚本.shell脚本依次运行python脚本,该脚本从FTP服务器下载文件,然后在这些文件上运行java日志处理器.这个过程运行得很好,除非我没有错误地继续收到CRON电子邮件.至少,我认为没有错误.cron电子邮件有两行,其中一行是
tput: No value for $TERM and no -T specified
Run Code Online (Sandbox Code Playgroud)
经过一番研究后,我发现它与设置$ TERM变量有关.我不确定,怎么做.任何帮助,将不胜感激.谢谢!
我正在尝试从ant运行java任务.我正在尝试运行"org.apache.tools.ant.launch.Launcher"类.我继续获取"NoClassDefFoundError"而没有指定任何类名.我也得到一个"ClassNotFoundException"以及显示消息"无法找到主类:.程序将退出".这是错误的片段
[java] Exception in thread "main" java.lang.NoClassDefFoundError:
[java] Caused by: java.lang.ClassNotFoundException:
[java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
[java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
[java] Could not find the main class: . Program will exit.
[java] Java Result: 1
Run Code Online (Sandbox Code Playgroud)
现在我试图从一个ant jar运行一个ant类,并使用"classpathref"属性指定此类文件所在的类路径,但是我仍然收到此消息.我检查了ant jar以检查Manifest并正确指定了"main"类(它是"org.apache.tools.ant.launch.Launcher").我已经用尽了所有的资源.请帮忙 !!!
ps:我的环境是Ubuntu 9.04上的Eclipse
我一直在尝试使用Spring定义一个EnumMap.我尝试了以下变化
<util:map map-class="java.util.EnumMap" key-type="xyz.EnumType">
<entry key="SOME_ENUM_TYPE">
<ref bean="someBean"/>
</entry>
</util:map>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Error creating bean with name 'util:map#1c599b0e': Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.EnumMap]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.util.EnumMap.<init>()
Run Code Online (Sandbox Code Playgroud)
以下定义是我最初尝试过的
<util:map map-class="java.util.EnumMap">
<entry key="SOME_ENUM_TYPE">
<ref bean="someBean"/>
</entry>
</util:map>
Run Code Online (Sandbox Code Playgroud)
这给了我一些错误,无法将enumtype分配给String.
网站上有一些使用通用地图的例子,但我试图看看我是否可以使用EnumMap,因为它被认为是Enums的最佳选择.答案可能非常明显,所以如果问题很愚蠢我会道歉.这可能是由于我对Spring的了解有限.谢谢
我试图压制消息
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Run Code Online (Sandbox Code Playgroud)
当我运行我的Spark应用程序时.我已成功重定向INFO消息,但此消息不断显示.任何想法将不胜感激.
我遇到了一个问题,我试图将List作为根节点,但我似乎无法得到它.让我解释.假设我们有一个类"TestClass"
class TestClass{
String propertyA;
}
Run Code Online (Sandbox Code Playgroud)
现在,在一些实用方法中,这就是我所做的
String utilityMethod(){
List<TestClass> list = someService.getList();
new ObjectMapper().writeValueAsString(list);
}
Run Code Online (Sandbox Code Playgroud)
我试图在JSON中获得的输出是
{"ListOfTestClasses":[{"propertyA":"propertyAValue"},{"propertyA":"someOtherPropertyValue"}]}
Run Code Online (Sandbox Code Playgroud)
我试过用
objMapper.getSerializationConfig().set(Feature.WRAP_ROOT_VALUE, true);
Run Code Online (Sandbox Code Playgroud)
但是,我似乎仍然没有做对.
现在,我只是创建一个Map <String,TestClass>,然后我写这个来实现我想要做的事情,但这很有效但很明显这是一个黑客.有人可以帮我一个更优雅的解决方案吗?谢谢
我想知道“计数器”和“仪表”类维护的计数是否有区别?我理解 Meter 也测量费率,但我很想知道是否有计数器和仪表同时更新(计数器递增),我认为这两个数字是相同的。这个假设我错了吗?
我有这个没有根节点的XML文件.除了手动添加"假"根元素之外,有什么方法可以用Java解析XML文件?谢谢.
我试图用Java编写单元测试来测试编码的JSON值.我正在尝试执行以下操作:
assertEquals(expectedJSON(),actualJSON())
Run Code Online (Sandbox Code Playgroud)
其中expectedJSON()返回
{
"someHtml": {
"html": "<html>HTML&CSS</html>"
}
}
Run Code Online (Sandbox Code Playgroud)
其中作为actualJSON()返回
{
"someHtml": {
"html": "\u003Chtml\u003EHTML\u0026CSS\u003C/html\u003E"
}
}
Run Code Online (Sandbox Code Playgroud)
我希望expectedJSON返回realJSON()返回的内容,但我无法找到一种简单的方法来执行此操作.我在网上看过,但在这方面没有找到任何容易的东西.该actualJSON()做一些复杂的处理,需要这种方式返回值.我的expectedJSON()方法看起来像这样
public String expectedJSONWithHTMLValues(){
return "{" +
"\"someHtml\":{" +
"\"html\":\"\u003Chtml\u003EHTML\u0026CSS\u003C/html\u003E\"}}";
}
Run Code Online (Sandbox Code Playgroud)