标签: java

用Java读取纯文本文件

似乎有不同的方法来读取和写入Java中的文件数据.

我想从文件中读取ASCII数据.可能的方式和差异是什么?

java file-io ascii

908
推荐指数
16
解决办法
229万
查看次数

Java中的静态类

static classjava中有类似的东西吗?

这类课的意义是什么.静态类的所有方法都需要static吗?

是否需要反过来说,如果一个类包含所有静态方法,那么该类是否也应该是静态的?

什么是静态类有用?

java static-classes

906
推荐指数
9
解决办法
84万
查看次数

Java 8将<V>列入Map <K,V>

我想使用Java 8的流和lambdas将对象列表转换为Map.

这就是我在Java 7及以下版本中编写它的方法.

private Map<String, Choice> nameMap(List<Choice> choices) {
        final Map<String, Choice> hashMap = new HashMap<>();
        for (final Choice choice : choices) {
            hashMap.put(choice.getName(), choice);
        }
        return hashMap;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用Java 8和Guava轻松完成此任务,但我想知道如何在没有Guava的情况下完成此操作.

在番石榴:

private Map<String, Choice> nameMap(List<Choice> choices) {
    return Maps.uniqueIndex(choices, new Function<Choice, String>() {

        @Override
        public String apply(final Choice input) {
            return input.getName();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

还有Java 8 lambda的番石榴.

private Map<String, Choice> nameMap(List<Choice> choices) {
    return Maps.uniqueIndex(choices, Choice::getName);
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

892
推荐指数
16
解决办法
60万
查看次数

StringBuilder vs Java中toString()的字符串连接

鉴于toString()下面的两个实现,首选哪一个:

public String toString(){
    return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
Run Code Online (Sandbox Code Playgroud)

要么

public String toString(){
    StringBuilder sb = new StringBuilder(100);
    return sb.append("{a:").append(a)
          .append(", b:").append(b)
          .append(", c:").append(c)
          .append("}")
          .toString();
}
Run Code Online (Sandbox Code Playgroud)

?

更重要的是,鉴于我们只有3个属性,它可能没有什么区别,但你会在什么时候从+concat 切换到 StringBuilder?

java string performance stringbuilder concatenation

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

如何使用mockito模拟void方法

如何用void返回类型模拟方法?

我实现了一个观察者模式,但我无法用Mockito模拟它,因为我不知道如何.

我试图在互联网上找到一个例子,但没有成功.

我的班级看起来像

public class World {

    List<Listener> listeners;

    void addListener(Listener item) {
        listeners.add(item);
    }

    void doAction(Action goal,Object obj) {
        setState("i received");
        goal.doAction(obj);
        setState("i finished");
    }

    private string state;
    //setter getter state
} 

public class WorldTest implements Listener {

    @Test public void word{
    World  w= mock(World.class);
    w.addListener(this);
    ...
    ...

    }
}

interface Listener {
    void doAction();
}
Run Code Online (Sandbox Code Playgroud)

系统不会通过模拟触发.=(我想显示上面提到的系统状态.并根据它们做出断言.

java unit-testing mocking void mockito

875
推荐指数
9
解决办法
73万
查看次数

无法执行jar文件:"没有主要清单属性"

我已经安装了一个应用程序,当我尝试运行它时(它是一个可执行的jar)没有任何反应.当我从命令行运行它时:

java -jar"app.jar"

我收到以下消息:

"app.jar"中没有主要的清单属性

通常,如果我自己创建了程序,我会在清单文件中添加一个主类属性.但在这种情况下,由于文件来自应用程序,我不能这样做.我也尝试提取jar以查看是否可以找到主类,但是有许多类,并且它们中没有一个在其名称中包含"main"一词.必须有办法解决这个问题,因为程序在其他系统上运行正常.

java program-entry-point jar manifest

875
推荐指数
21
解决办法
125万
查看次数

Java:何时使用静态方法

我想知道何时使用静态方法?假设我有一个带有几个getter和setter的类,一个或两个方法,我希望这些方法只能在类的实例对象上调用.这是否意味着我应该使用静态方法?

例如

Obj x = new Obj();
x.someMethod
Run Code Online (Sandbox Code Playgroud)

要么

Obj.someMethod
Run Code Online (Sandbox Code Playgroud)

(这是静态方式吗?)

我很困惑!

java static-methods

868
推荐指数
13
解决办法
109万
查看次数

JDK和JRE有什么区别?

JDK和JRE有什么区别?
他们的角色是什么,我应该何时使用其中一个?

java

857
推荐指数
17
解决办法
64万
查看次数

一个'for'循环迭代Java中的枚举

我有一个enumJava用于基数和中间方向:

public enum Direction {
   NORTH,
   NORTHEAST,
   EAST,
   SOUTHEAST,
   SOUTH,
   SOUTHWEST,
   WEST,
   NORTHWEST
}
Run Code Online (Sandbox Code Playgroud)

如何编写for循环遍历每个enum值的循环?

java enums for-loop

854
推荐指数
10
解决办法
45万
查看次数

Java字符串到日期转换

将String"2010年1月2日"格式转换为DateJava 格式的最佳方法是什么?

最终,我希望将月份,日期和年份作为整数分解,以便我可以使用

Date date = new Date();
date.setMonth()..
date.setYear()..
date.setDay()..
date.setlong currentTime = date.getTime();
Run Code Online (Sandbox Code Playgroud)

将日期转换为时间.

java string time date data-conversion

847
推荐指数
11
解决办法
177万
查看次数