标签: java

IntelliJ:永远不要使用通配符导入

有没有办法告诉IntelliJ永远不要使用通配符导入?在"设置>代码样式>导入"下,我可以看到您可以使用通配符导入在IntelliJ之前指定"类计数".但是,如果我从不想使用通配符导入,我可以关闭此功能吗?

我试过把-1放在空白区域,但这只是告诉IntelliJ总是使用通配符导入.显然,一个不太好的解决方案是设置一个可笑的高数字,以便你永远不会遇到通配符导入,但我希望有一个更好的方法来关闭它.

java settings intellij-idea

577
推荐指数
11
解决办法
17万
查看次数

在Java中调用foreach循环中的remove

在Java中,使用foreach循环遍历集合时,对集合调用remove是否合法?例如:

List<String> names = ....
for (String name : names) {
   // Do something
   names.remove(name).
}
Run Code Online (Sandbox Code Playgroud)

作为附录,删除尚未迭代的项目是否合法?例如,

//Assume that the names list as duplicate entries
List<String> names = ....
for (String name : names) {
    // Do something
    while (names.remove(name));
}
Run Code Online (Sandbox Code Playgroud)

java foreach iterator loops

575
推荐指数
7
解决办法
41万
查看次数

为什么静态方法在Java中不能是抽象的

问题是在Java中为什么我不能定义一个抽象的静态方法?例如

abstract class foo {
    abstract void bar( ); // <-- this is ok
    abstract static void bar2(); //<-- this isn't why?
}
Run Code Online (Sandbox Code Playgroud)

java abstract-class static-methods

572
推荐指数
8
解决办法
26万
查看次数

为什么this()和super()必须是构造函数中的第一个语句?

Java要求如果在构造函数中调用this()或super(),它必须是第一个语句.为什么?

例如:

public class MyClass {
    public MyClass(int x) {}
}

public class MySubClass extends MyClass {
    public MySubClass(int a, int b) {
        int c = a + b;
        super(c);  // COMPILE ERROR
    }
}
Run Code Online (Sandbox Code Playgroud)

Sun编译器说"调用super必须是构造函数中的第一个语句".Eclipse编译器说"构造函数调用必须是构造函数中的第一个语句".

但是,您可以通过重新安排代码来解决这个问题:

public class MySubClass extends MyClass {
    public MySubClass(int a, int b) {
        super(a + b);  // OK
    }
}
Run Code Online (Sandbox Code Playgroud)

这是另一个例子:

public class MyClass {
    public MyClass(List list) {}
}

public class MySubClassA extends MyClass {
    public MySubClassA(Object item) {
        // Create a list …
Run Code Online (Sandbox Code Playgroud)

java constructor

572
推荐指数
8
解决办法
21万
查看次数

检查三个布尔值中是否至少有两个是真的

一位采访者最近问我这个问题:给定三个布尔变量a,b和c,如果三个中至少有两个为真,则返回true.

我的解决方案是:

boolean atLeastTwo(boolean a, boolean b, boolean c) {
    if ((a && b) || (b && c) || (a && c)) {
        return true;
    }
    else{
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

他说这可以进一步改善,但如何?

java boolean-logic boolean

572
推荐指数
24
解决办法
15万
查看次数

是否有Java的析构函数?

是否有Java的析构函数?我似乎无法找到任何关于此的文档.如果没有,我怎样才能达到同样的效果?

为了使我的问题更具体,我正在编写一个处理数据的应用程序,并且规范说应该有一个"重置"按钮,使应用程序恢复到其原始的刚启动状态.但是,除非关闭应用程序或按下重置按钮,否则所有数据都必须为"实时".

作为一名C/C++程序员,我认为实现这一点非常简单.(因此我计划最后实现它.)我构建了我的程序,使得所有'可重置'对象都在同一个类中,这样我就可以在按下重置按钮时销毁所有'实时'对象.

我在想如果我所做的只是取消引用数据并等待垃圾收集器收集它们,如果我的用户反复输入数据并按下重置按钮,是否会出现内存泄漏?我也在想,因为Java作为一种语言非常成熟,应该有办法防止这种情况发生或优雅地解决这个问题.

java garbage-collection destructor

569
推荐指数
11
解决办法
55万
查看次数

Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?

什么之间的区别getPath(),getAbsolutePath()以及getCanonicalPath()在Java中?

我什么时候使用每一个?

java

567
推荐指数
5
解决办法
38万
查看次数

如何验证使用Mockito不调用特定方法?

如何验证是否未在对象的依赖项上调用方法?

例如:

public interface Dependency {
    void someMethod();
}

public class Foo {
    public bar(final Dependency d) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

通过Foo测试:

public class FooTest {
    @Test
    public void dependencyIsNotCalled() {
        final Foo foo = new Foo(...);
        final Dependency dependency = mock(Dependency.class);
        foo.bar(dependency);
        **// verify here that someMethod was not called??**
    }
}
Run Code Online (Sandbox Code Playgroud)

java tdd mockito

563
推荐指数
5
解决办法
30万
查看次数

Java:将List <String>转换为String

JavaScript有 Array.join()

js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve
Run Code Online (Sandbox Code Playgroud)

Java有这样的东西吗?我知道我可以用StringBuilder自己解决一些问题:

static public String join(List<String> list, String conjunction)
{
   StringBuilder sb = new StringBuilder();
   boolean first = true;
   for (String item : list)
   {
      if (first)
         first = false;
      else
         sb.append(conjunction);
      sb.append(item);
   }
   return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

...但是,如果像这样的东西已经是JDK的一部分,那就没有意义了.

java list

561
推荐指数
15
解决办法
43万
查看次数

访谈:我们可以实例化抽象类吗?

采访者问:我们可以实例化一个抽象类吗?我说,不,他告诉我 - 错,我们可以.

我对此有点争论.然后他告诉我自己在家里试试.

abstract class my {
    public void mymethod() {
        System.out.print("Abstract");
    }
}

class poly {
    public static void main(String a[]) {
        my m = new my() {};
        m.mymethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在创建我的类的实例并调用抽象类的方法.有人可以向我解释一下吗?在我的采访中我真的错了吗?

java oop class object abstract

561
推荐指数
10
解决办法
23万
查看次数