小编His*_*His的帖子

逐行读取字符串

给定一个不太长的字符串,逐行读取它的最佳方法是什么?

我知道你可以这样做:

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)

这样做还有其他更简单的方法吗?我对上述方法没有任何问题,只想知道你们中是否有人知道看起来更简单,更有效的东西?

java string

135
推荐指数
9
解决办法
27万
查看次数

应该以现在还是过去时态写入提交消息?

那么你认为哪个更好,更直观?

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工具或编程语言相关联,而应将其视为应该/可以应用于任何工具和编程语言的东西.

version-control coding-style

102
推荐指数
7
解决办法
8300
查看次数

我什么时候想让我的私有类静态?

一般来说,将私有类声明为静态是否有任何好处?

在什么情况下我想使用以下哪一个而不是另一个?

private static class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

VS

private class Foo
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

java static private class

57
推荐指数
3
解决办法
4万
查看次数

Java接口使用指南 - 接口中的getter和setter是不是很糟糕?

人们如何看待在界面中使用的最佳指南?什么应该和不应该进入界面?

我听说有人说,作为一般规则,接口必须只定义行为而不是状态.这是否意味着接口不应包含getter和setter?

我的观点:对于制定者来说可能不是这样,但有时我认为吸气剂可以放在界面中.这仅仅是为了强制实现类来实现那些getter,以便表明客户端能够调用那些getter来检查某些东西,例如.

java getter setter interface javabeans

35
推荐指数
4
解决办法
3万
查看次数

使用Maven设置Java编译器的-source和-target不起作用

我已经设置了我的pom文件,要求Maven使用sourcetargetconfig参数将我的源代码编译为兼容版本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 maven

19
推荐指数
2
解决办法
2万
查看次数

Java:无论操作系统如何,如何确定路径是否绝对

无论如何,在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提供的内置类来解决这个问题.或者有没有人来过这个问题?你是怎么解决的?

谢谢!

java path absolute-path

17
推荐指数
2
解决办法
1万
查看次数

Java的TimeZone是线程安全的吗?

我希望我的应用程序只有一个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 timezone thread-safety

16
推荐指数
2
解决办法
5235
查看次数

JAXB XML输出格式问题

我有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)

java xml jaxb

12
推荐指数
1
解决办法
1万
查看次数

Findbugs警告:整数移位32 - 这是什么意思?

我正在使用Findbugs扫描第三方源代码(只是在集成到我之前要小心),并发现以下警告:

long a = b << 32 | c
Run Code Online (Sandbox Code Playgroud)

错误:整数移位32模式ID:ICAST_BAD_SHIFT_AMOUNT,类型:BSHIFT,类别:正确性

代码在0..31范围之外执行整数移位恒定量.这样做的结果是使用整数值的低5位来决定移位多少.这可能是不希望的,它至少令人困惑.

谁有人可以解释一下上面究竟是什么意思?

谢谢!(我是Java编程的新手)

java findbugs bit

10
推荐指数
2
解决办法
5667
查看次数

HTML:如何创建"另存为"按钮?

在浏览器中,当您要保存当前正在查看的HTML页面时,通常会转到"文件"菜单并单击"另存为".

我可以在HTML页面底部有一个小按钮来执行相同的操作吗?因此,我没有进入"文件"菜单 - >"另存为",而是希望我的用户能够单击按钮将页面保存到磁盘上.

据我所知,存在使用Javascript的解决方案,但它仅适用于IE.请参见此处:链接文字

html javascript button save-as

9
推荐指数
1
解决办法
3万
查看次数