给定一个不太长的字符串,逐行读取它的最佳方法是什么?
我知道你可以这样做:
BufferedReader reader = new BufferedReader(new StringReader(<string>));
reader.readLine();
Run Code Online (Sandbox Code Playgroud)
另一种方法是在eol上获取子字符串:
final String eol = System.getProperty("line.separator");
output = output.substring(output.indexOf(eol + 1));
Run Code Online (Sandbox Code Playgroud)
这样做还有其他更简单的方法吗?我对上述方法没有任何问题,只想知道你们中是否有人知道看起来更简单,更有效的东西?
那么你认为哪个更好,更直观?
Fixed the XXX bug in YYY
Fix the XXX bug in YYY
Fixes the XXX bug in YYY
Fixing the XXX bug in YYY
Run Code Online (Sandbox Code Playgroud)
请提供您的理由.注意我从您的一般观点来看,这意味着您不应该尝试将其与您首选的svn/cvs工具或编程语言相关联,而应将其视为应该/可以应用于任何工具和编程语言的东西.
一般来说,将私有类声明为静态是否有任何好处?
在什么情况下我想使用以下哪一个而不是另一个?
private static class Foo
{
...
}
Run Code Online (Sandbox Code Playgroud)
VS
private class Foo
{
...
}
Run Code Online (Sandbox Code Playgroud) 人们如何看待在界面中使用的最佳指南?什么应该和不应该进入界面?
我听说有人说,作为一般规则,接口必须只定义行为而不是状态.这是否意味着接口不应包含getter和setter?
我的观点:对于制定者来说可能不是这样,但有时我认为吸气剂可以放在界面中.这仅仅是为了强制实现类来实现那些getter,以便表明客户端能够调用那些getter来检查某些东西,例如.
我已经设置了我的pom文件,要求Maven使用source和targetconfig参数将我的源代码编译为兼容版本1.5 .这是我的pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>user</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>test</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的简单主类:
package com.user;
public class Test
{
public static void main(String[] argv)
{
System.out.println("".isEmpty());
}
}
Run Code Online (Sandbox Code Playgroud)
String#isEmpty()从Java 1.6开始引入.但是,编译我的代码与mvn compile工作,虽然我会期望它失败,因为我已经设置Maven将我的代码编译为Java 1.5并String#isEmpty在Java 1.6中引入.任何人都可以建议我可能做错了什么?在编译时强制Maven使用特定Java版本的正确方法是什么?
有关信息,我使用Apache Maven 2.2.1和javac 1.6.0_19.
谢谢.
无论如何,在Java中,无论程序当前运行的平台是什么,都要确定给定路径是否是绝对路径.所以,我想要的可能是以下示例:
在Linux上:
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
在Windows上:
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.
Run Code Online (Sandbox Code Playgroud)
我可以编写一些代码来解决这个问题,但我只是想知道是否有人知道用Java提供的内置类来解决这个问题.或者有没有人来过这个问题?你是怎么解决的?
谢谢!
我希望我的应用程序只有一个TimeZone对象,它将被许多SimpleDateFormat人和Calendar其他地方的对象同时使用.这是为了避免总是这样做TimeZone.getTimeZone(ID).
我知道SimpleDateFormat并且Calendar类不是线程安全的,这就是为什么我配置一个线程来始终创建它们的新实例.但那怎么样TimeZone?我不清楚我是否可以安全地执行以下操作:
final TimeZone tz = TimeZone.getTimeZone("GMT");
...
//Thread 1.
Thread t1 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t1.start();
...
//Thread 2.
Thread t2 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t2.start();
...
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有Java类的结构如下(类名称并不意味着什么,我只是做起来).
package test;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
@XmlRootElement
public class Test
{
@XmlAccessorType(XmlAccessType.FIELD)
static class Machine
{
@XmlElementWrapper(name="servers")
@XmlElement(name="server")
List<Server> servers = new ArrayList<Server>();
}
@XmlAccessorType(XmlAccessType.FIELD)
static class Server
{
Threshold t = new Threshold();
}
@XmlAccessorType(XmlAccessType.FIELD)
static class Threshold
{
RateThreshold load = new RateThreshold();
}
@XmlAccessorType(XmlAccessType.FIELD)
static class RateThreshold
{
@XmlAccessorType(XmlAccessType.FIELD)
static class Rate
{
int count;
Period …Run Code Online (Sandbox Code Playgroud) 我正在使用Findbugs扫描第三方源代码(只是在集成到我之前要小心),并发现以下警告:
long a = b << 32 | c
Run Code Online (Sandbox Code Playgroud)
错误:整数移位32模式ID:ICAST_BAD_SHIFT_AMOUNT,类型:BSHIFT,类别:正确性
代码在0..31范围之外执行整数移位恒定量.这样做的结果是使用整数值的低5位来决定移位多少.这可能是不希望的,它至少令人困惑.
谁有人可以解释一下上面究竟是什么意思?
谢谢!(我是Java编程的新手)
在浏览器中,当您要保存当前正在查看的HTML页面时,通常会转到"文件"菜单并单击"另存为".
我可以在HTML页面底部有一个小按钮来执行相同的操作吗?因此,我没有进入"文件"菜单 - >"另存为",而是希望我的用户能够单击按钮将页面保存到磁盘上.
据我所知,存在使用Javascript的解决方案,但它仅适用于IE.请参见此处:链接文字